var OGVDecoderAudioOpus
(function() {
  var scriptSrc;
  if (typeof document !== 'undefined' && document.currentScript) scriptSrc = document.currentScript.src;
OGVDecoderAudioOpus = function(OGVDecoderAudioOpus) {
  OGVDecoderAudioOpus = OGVDecoderAudioOpus || {};
  if (!OGVDecoderAudioOpus.currentScriptUrl) OGVDecoderAudioOpus.currentScriptUrl = scriptSrc;
  var Module = OGVDecoderAudioOpus;

var options=Module;Module={print:(function(str){console.log(str)})};if(typeof OGVLoader!=="undefined"){Module["pthreadMainPrefixURL"]=OGVLoader.base+"/"}if(options["memoryLimit"]&&!options.wasmBinary){Module["TOTAL_MEMORY"]=options["memoryLimit"]}for(option in options){if(options.hasOwnProperty(option)){Module[option]=options[option]}}var Math_imul_orig=Math.imul;var OGVDecoderAudioOpus=Module;var Module;if(!Module)Module=(typeof OGVDecoderAudioOpus!=="undefined"?OGVDecoderAudioOpus:null)||{};var moduleOverrides={};for(var key in Module){if(Module.hasOwnProperty(key)){moduleOverrides[key]=Module[key]}}var ENVIRONMENT_IS_WEB=false;var ENVIRONMENT_IS_WORKER=false;var ENVIRONMENT_IS_NODE=false;var ENVIRONMENT_IS_SHELL=false;if(Module["ENVIRONMENT"]){if(Module["ENVIRONMENT"]==="WEB"){ENVIRONMENT_IS_WEB=true}else if(Module["ENVIRONMENT"]==="WORKER"){ENVIRONMENT_IS_WORKER=true}else if(Module["ENVIRONMENT"]==="NODE"){ENVIRONMENT_IS_NODE=true}else if(Module["ENVIRONMENT"]==="SHELL"){ENVIRONMENT_IS_SHELL=true}else if(Module["ENVIRONMENT"]==="PTHREAD"){ENVIRONMENT_IS_WORKER=true;ENVIRONMENT_IS_PTHREAD=true}else{throw new Error("The provided Module['ENVIRONMENT'] value is not valid. It must be one of: WEB|WORKER|NODE|SHELL.")}}else{ENVIRONMENT_IS_WEB=typeof window==="object";ENVIRONMENT_IS_WORKER=typeof importScripts==="function";ENVIRONMENT_IS_NODE=typeof process==="object"&&typeof require==="function"&&!ENVIRONMENT_IS_WEB&&!ENVIRONMENT_IS_WORKER;ENVIRONMENT_IS_SHELL=!ENVIRONMENT_IS_WEB&&!ENVIRONMENT_IS_NODE&&!ENVIRONMENT_IS_WORKER}if(ENVIRONMENT_IS_NODE){if(!Module["print"])Module["print"]=console.log;if(!Module["printErr"])Module["printErr"]=console.warn;var nodeFS;var nodePath;Module["read"]=function shell_read(filename,binary){if(!nodeFS)nodeFS=require("fs");if(!nodePath)nodePath=require("path");filename=nodePath["normalize"](filename);var ret=nodeFS["readFileSync"](filename);return binary?ret:ret.toString()};Module["readBinary"]=function readBinary(filename){var ret=Module["read"](filename,true);if(!ret.buffer){ret=new Uint8Array(ret)}assert(ret.buffer);return ret};Module["load"]=function load(f){globalEval(read(f))};if(!Module["thisProgram"]){if(process["argv"].length>1){Module["thisProgram"]=process["argv"][1].replace(/\\/g,"/")}else{Module["thisProgram"]="unknown-program"}}Module["arguments"]=process["argv"].slice(2);if(typeof module!=="undefined"){module["exports"]=Module}process["on"]("uncaughtException",(function(ex){if(!(ex instanceof ExitStatus)){throw ex}}));Module["inspect"]=(function(){return"[Emscripten Module object]"})}else if(ENVIRONMENT_IS_SHELL){if(!Module["print"])Module["print"]=print;if(typeof printErr!="undefined")Module["printErr"]=printErr;if(typeof read!="undefined"){Module["read"]=read}else{Module["read"]=function shell_read(){throw"no read() available"}}Module["readBinary"]=function readBinary(f){if(typeof readbuffer==="function"){return new Uint8Array(readbuffer(f))}var data=read(f,"binary");assert(typeof data==="object");return data};if(typeof scriptArgs!="undefined"){Module["arguments"]=scriptArgs}else if(typeof arguments!="undefined"){Module["arguments"]=arguments}if(typeof quit==="function"){Module["quit"]=(function(status,toThrow){quit(status)})}}else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){Module["read"]=function shell_read(url){var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.send(null);return xhr.responseText};if(ENVIRONMENT_IS_WORKER){Module["readBinary"]=function readBinary(url){var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.responseType="arraybuffer";xhr.send(null);return xhr.response}}Module["readAsync"]=function readAsync(url,onload,onerror){var xhr=new XMLHttpRequest;xhr.open("GET",url,true);xhr.responseType="arraybuffer";xhr.onload=function xhr_onload(){if(xhr.status==200||xhr.status==0&&xhr.response){onload(xhr.response)}else{onerror()}};xhr.onerror=onerror;xhr.send(null)};if(typeof arguments!="undefined"){Module["arguments"]=arguments}if(typeof console!=="undefined"){if(!Module["print"])Module["print"]=function shell_print(x){console.log(x)};if(!Module["printErr"])Module["printErr"]=function shell_printErr(x){console.warn(x)}}else{var TRY_USE_DUMP=false;if(!Module["print"])Module["print"]=TRY_USE_DUMP&&typeof dump!=="undefined"?(function(x){dump(x)}):(function(x){})}if(ENVIRONMENT_IS_WORKER){Module["load"]=importScripts}if(typeof Module["setWindowTitle"]==="undefined"){Module["setWindowTitle"]=(function(title){document.title=title})}}else{throw"Unknown runtime environment. Where are we?"}function globalEval(x){eval.call(null,x)}if(!Module["load"]&&Module["read"]){Module["load"]=function load(f){globalEval(Module["read"](f))}}if(!Module["print"]){Module["print"]=(function(){})}if(!Module["printErr"]){Module["printErr"]=Module["print"]}if(!Module["arguments"]){Module["arguments"]=[]}if(!Module["thisProgram"]){Module["thisProgram"]="./this.program"}if(!Module["quit"]){Module["quit"]=(function(status,toThrow){throw toThrow})}Module.print=Module["print"];Module.printErr=Module["printErr"];Module["preRun"]=[];Module["postRun"]=[];for(var key in moduleOverrides){if(moduleOverrides.hasOwnProperty(key)){Module[key]=moduleOverrides[key]}}moduleOverrides=undefined;var Runtime={setTempRet0:(function(value){tempRet0=value;return value}),getTempRet0:(function(){return tempRet0}),stackSave:(function(){return STACKTOP}),stackRestore:(function(stackTop){STACKTOP=stackTop}),getNativeTypeSize:(function(type){switch(type){case"i1":case"i8":return 1;case"i16":return 2;case"i32":return 4;case"i64":return 8;case"float":return 4;case"double":return 8;default:{if(type[type.length-1]==="*"){return Runtime.QUANTUM_SIZE}else if(type[0]==="i"){var bits=parseInt(type.substr(1));assert(bits%8===0);return bits/8}else{return 0}}}}),getNativeFieldSize:(function(type){return Math.max(Runtime.getNativeTypeSize(type),Runtime.QUANTUM_SIZE)}),STACK_ALIGN:16,prepVararg:(function(ptr,type){if(type==="double"||type==="i64"){if(ptr&7){assert((ptr&7)===4);ptr+=4}}else{assert((ptr&3)===0)}return ptr}),getAlignSize:(function(type,size,vararg){if(!vararg&&(type=="i64"||type=="double"))return 8;if(!type)return Math.min(size,8);return Math.min(size||(type?Runtime.getNativeFieldSize(type):0),Runtime.QUANTUM_SIZE)}),dynCall:(function(sig,ptr,args){if(args&&args.length){return Module["dynCall_"+sig].apply(null,[ptr].concat(args))}else{return Module["dynCall_"+sig].call(null,ptr)}}),functionPointers:[],addFunction:(function(func){for(var i=0;i<Runtime.functionPointers.length;i++){if(!Runtime.functionPointers[i]){Runtime.functionPointers[i]=func;return 2*(1+i)}}throw"Finished up all reserved function pointers. Use a higher value for RESERVED_FUNCTION_POINTERS."}),removeFunction:(function(index){Runtime.functionPointers[(index-2)/2]=null}),warnOnce:(function(text){if(!Runtime.warnOnce.shown)Runtime.warnOnce.shown={};if(!Runtime.warnOnce.shown[text]){Runtime.warnOnce.shown[text]=1;Module.printErr(text)}}),funcWrappers:{},getFuncWrapper:(function(func,sig){assert(sig);if(!Runtime.funcWrappers[sig]){Runtime.funcWrappers[sig]={}}var sigCache=Runtime.funcWrappers[sig];if(!sigCache[func]){if(sig.length===1){sigCache[func]=function dynCall_wrapper(){return Runtime.dynCall(sig,func)}}else if(sig.length===2){sigCache[func]=function dynCall_wrapper(arg){return Runtime.dynCall(sig,func,[arg])}}else{sigCache[func]=function dynCall_wrapper(){return Runtime.dynCall(sig,func,Array.prototype.slice.call(arguments))}}}return sigCache[func]}),getCompilerSetting:(function(name){throw"You must build with -s RETAIN_COMPILER_SETTINGS=1 for Runtime.getCompilerSetting or emscripten_get_compiler_setting to work"}),stackAlloc:(function(size){var ret=STACKTOP;STACKTOP=STACKTOP+size|0;STACKTOP=STACKTOP+15&-16;return ret}),staticAlloc:(function(size){var ret=STATICTOP;STATICTOP=STATICTOP+size|0;STATICTOP=STATICTOP+15&-16;return ret}),dynamicAlloc:(function(size){var ret=HEAP32[DYNAMICTOP_PTR>>2];var end=(ret+size+15|0)&-16;HEAP32[DYNAMICTOP_PTR>>2]=end;if(end>=TOTAL_MEMORY){var success=enlargeMemory();if(!success){HEAP32[DYNAMICTOP_PTR>>2]=ret;return 0}}return ret}),alignMemory:(function(size,quantum){var ret=size=Math.ceil(size/(quantum?quantum:16))*(quantum?quantum:16);return ret}),makeBigInt:(function(low,high,unsigned){var ret=unsigned?+(low>>>0)+ +(high>>>0)*+4294967296:+(low>>>0)+ +(high|0)*+4294967296;return ret}),GLOBAL_BASE:8,QUANTUM_SIZE:4,__dummy__:0};Module["Runtime"]=Runtime;var ABORT=0;var EXITSTATUS=0;function assert(condition,text){if(!condition){abort("Assertion failed: "+text)}}function getCFunc(ident){var func=Module["_"+ident];if(!func){try{func=eval("_"+ident)}catch(e){}}assert(func,"Cannot call unknown function "+ident+" (perhaps LLVM optimizations or closure removed it?)");return func}var cwrap,ccall;((function(){var JSfuncs={"stackSave":(function(){Runtime.stackSave()}),"stackRestore":(function(){Runtime.stackRestore()}),"arrayToC":(function(arr){var ret=Runtime.stackAlloc(arr.length);writeArrayToMemory(arr,ret);return ret}),"stringToC":(function(str){var ret=0;if(str!==null&&str!==undefined&&str!==0){var len=(str.length<<2)+1;ret=Runtime.stackAlloc(len);stringToUTF8(str,ret,len)}return ret})};var toC={"string":JSfuncs["stringToC"],"array":JSfuncs["arrayToC"]};ccall=function ccallFunc(ident,returnType,argTypes,args,opts){var func=getCFunc(ident);var cArgs=[];var stack=0;if(args){for(var i=0;i<args.length;i++){var converter=toC[argTypes[i]];if(converter){if(stack===0)stack=Runtime.stackSave();cArgs[i]=converter(args[i])}else{cArgs[i]=args[i]}}}var ret=func.apply(null,cArgs);if(returnType==="string")ret=Pointer_stringify(ret);if(stack!==0){if(opts&&opts.async){EmterpreterAsync.asyncFinalizers.push((function(){Runtime.stackRestore(stack)}));return}Runtime.stackRestore(stack)}return ret};var sourceRegex=/^function\s*[a-zA-Z$_0-9]*\s*\(([^)]*)\)\s*{\s*([^*]*?)[\s;]*(?:return\s*(.*?)[;\s]*)?}$/;function parseJSFunc(jsfunc){var parsed=jsfunc.toString().match(sourceRegex).slice(1);return{arguments:parsed[0],body:parsed[1],returnValue:parsed[2]}}var JSsource=null;function ensureJSsource(){if(!JSsource){JSsource={};for(var fun in JSfuncs){if(JSfuncs.hasOwnProperty(fun)){JSsource[fun]=parseJSFunc(JSfuncs[fun])}}}}cwrap=function cwrap(ident,returnType,argTypes){argTypes=argTypes||[];var cfunc=getCFunc(ident);var numericArgs=argTypes.every((function(type){return type==="number"}));var numericRet=returnType!=="string";if(numericRet&&numericArgs){return cfunc}var argNames=argTypes.map((function(x,i){return"$"+i}));var funcstr="(function("+argNames.join(",")+") {";var nargs=argTypes.length;if(!numericArgs){ensureJSsource();funcstr+="var stack = "+JSsource["stackSave"].body+";";for(var i=0;i<nargs;i++){var arg=argNames[i],type=argTypes[i];if(type==="number")continue;var convertCode=JSsource[type+"ToC"];funcstr+="var "+convertCode.arguments+" = "+arg+";";funcstr+=convertCode.body+";";funcstr+=arg+"=("+convertCode.returnValue+");"}}var cfuncname=parseJSFunc((function(){return cfunc})).returnValue;funcstr+="var ret = "+cfuncname+"("+argNames.join(",")+");";if(!numericRet){var strgfy=parseJSFunc((function(){return Pointer_stringify})).returnValue;funcstr+="ret = "+strgfy+"(ret);"}if(!numericArgs){ensureJSsource();funcstr+=JSsource["stackRestore"].body.replace("()","(stack)")+";"}funcstr+="return ret})";return eval(funcstr)}}))();Module["ccall"]=ccall;Module["cwrap"]=cwrap;function setValue(ptr,value,type,noSafe){type=type||"i8";if(type.charAt(type.length-1)==="*")type="i32";switch(type){case"i1":HEAP8[ptr>>0]=value;break;case"i8":HEAP8[ptr>>0]=value;break;case"i16":HEAP16[ptr>>1]=value;break;case"i32":HEAP32[ptr>>2]=value;break;case"i64":tempI64=[value>>>0,(tempDouble=value,+Math_abs(tempDouble)>=+1?tempDouble>+0?(Math_min(+Math_floor(tempDouble/+4294967296),+4294967295)|0)>>>0:~~+Math_ceil((tempDouble- +(~~tempDouble>>>0))/+4294967296)>>>0:0)],HEAP32[ptr>>2]=tempI64[0],HEAP32[ptr+4>>2]=tempI64[1];break;case"float":HEAPF32[ptr>>2]=value;break;case"double":HEAPF64[ptr>>3]=value;break;default:abort("invalid type for setValue: "+type)}}Module["setValue"]=setValue;function getValue(ptr,type,noSafe){type=type||"i8";if(type.charAt(type.length-1)==="*")type="i32";switch(type){case"i1":return HEAP8[ptr>>0];case"i8":return HEAP8[ptr>>0];case"i16":return HEAP16[ptr>>1];case"i32":return HEAP32[ptr>>2];case"i64":return HEAP32[ptr>>2];case"float":return HEAPF32[ptr>>2];case"double":return HEAPF64[ptr>>3];default:abort("invalid type for setValue: "+type)}return null}Module["getValue"]=getValue;var ALLOC_NORMAL=0;var ALLOC_STACK=1;var ALLOC_STATIC=2;var ALLOC_DYNAMIC=3;var ALLOC_NONE=4;Module["ALLOC_NORMAL"]=ALLOC_NORMAL;Module["ALLOC_STACK"]=ALLOC_STACK;Module["ALLOC_STATIC"]=ALLOC_STATIC;Module["ALLOC_DYNAMIC"]=ALLOC_DYNAMIC;Module["ALLOC_NONE"]=ALLOC_NONE;function allocate(slab,types,allocator,ptr){var zeroinit,size;if(typeof slab==="number"){zeroinit=true;size=slab}else{zeroinit=false;size=slab.length}var singleType=typeof types==="string"?types:null;var ret;if(allocator==ALLOC_NONE){ret=ptr}else{ret=[typeof _malloc==="function"?_malloc:Runtime.staticAlloc,Runtime.stackAlloc,Runtime.staticAlloc,Runtime.dynamicAlloc][allocator===undefined?ALLOC_STATIC:allocator](Math.max(size,singleType?1:types.length))}if(zeroinit){var ptr=ret,stop;assert((ret&3)==0);stop=ret+(size&~3);for(;ptr<stop;ptr+=4){HEAP32[ptr>>2]=0}stop=ret+size;while(ptr<stop){HEAP8[ptr++>>0]=0}return ret}if(singleType==="i8"){if(slab.subarray||slab.slice){HEAPU8.set(slab,ret)}else{HEAPU8.set(new Uint8Array(slab),ret)}return ret}var i=0,type,typeSize,previousType;while(i<size){var curr=slab[i];if(typeof curr==="function"){curr=Runtime.getFunctionIndex(curr)}type=singleType||types[i];if(type===0){i++;continue}if(type=="i64")type="i32";setValue(ret+i,curr,type);if(previousType!==type){typeSize=Runtime.getNativeTypeSize(type);previousType=type}i+=typeSize}return ret}Module["allocate"]=allocate;function getMemory(size){if(!staticSealed)return Runtime.staticAlloc(size);if(!runtimeInitialized)return Runtime.dynamicAlloc(size);return _malloc(size)}Module["getMemory"]=getMemory;function Pointer_stringify(ptr,length){if(length===0||!ptr)return"";var hasUtf=0;var t;var i=0;while(1){t=HEAPU8[ptr+i>>0];hasUtf|=t;if(t==0&&!length)break;i++;if(length&&i==length)break}if(!length)length=i;var ret="";if(hasUtf<128){var MAX_CHUNK=1024;var curr;while(length>0){curr=String.fromCharCode.apply(String,HEAPU8.subarray(ptr,ptr+Math.min(length,MAX_CHUNK)));ret=ret?ret+curr:curr;ptr+=MAX_CHUNK;length-=MAX_CHUNK}return ret}return Module["UTF8ToString"](ptr)}Module["Pointer_stringify"]=Pointer_stringify;function AsciiToString(ptr){var str="";while(1){var ch=HEAP8[ptr++>>0];if(!ch)return str;str+=String.fromCharCode(ch)}}Module["AsciiToString"]=AsciiToString;function stringToAscii(str,outPtr){return writeAsciiToMemory(str,outPtr,false)}Module["stringToAscii"]=stringToAscii;var UTF8Decoder=typeof TextDecoder!=="undefined"?new TextDecoder("utf8"):undefined;function UTF8ArrayToString(u8Array,idx){var endPtr=idx;while(u8Array[endPtr])++endPtr;if(endPtr-idx>16&&u8Array.subarray&&UTF8Decoder){return UTF8Decoder.decode(u8Array.subarray(idx,endPtr))}else{var u0,u1,u2,u3,u4,u5;var str="";while(1){u0=u8Array[idx++];if(!u0)return str;if(!(u0&128)){str+=String.fromCharCode(u0);continue}u1=u8Array[idx++]&63;if((u0&224)==192){str+=String.fromCharCode((u0&31)<<6|u1);continue}u2=u8Array[idx++]&63;if((u0&240)==224){u0=(u0&15)<<12|u1<<6|u2}else{u3=u8Array[idx++]&63;if((u0&248)==240){u0=(u0&7)<<18|u1<<12|u2<<6|u3}else{u4=u8Array[idx++]&63;if((u0&252)==248){u0=(u0&3)<<24|u1<<18|u2<<12|u3<<6|u4}else{u5=u8Array[idx++]&63;u0=(u0&1)<<30|u1<<24|u2<<18|u3<<12|u4<<6|u5}}}if(u0<65536){str+=String.fromCharCode(u0)}else{var ch=u0-65536;str+=String.fromCharCode(55296|ch>>10,56320|ch&1023)}}}}Module["UTF8ArrayToString"]=UTF8ArrayToString;function UTF8ToString(ptr){return UTF8ArrayToString(HEAPU8,ptr)}Module["UTF8ToString"]=UTF8ToString;function stringToUTF8Array(str,outU8Array,outIdx,maxBytesToWrite){if(!(maxBytesToWrite>0))return 0;var startIdx=outIdx;var endIdx=outIdx+maxBytesToWrite-1;for(var i=0;i<str.length;++i){var u=str.charCodeAt(i);if(u>=55296&&u<=57343)u=65536+((u&1023)<<10)|str.charCodeAt(++i)&1023;if(u<=127){if(outIdx>=endIdx)break;outU8Array[outIdx++]=u}else if(u<=2047){if(outIdx+1>=endIdx)break;outU8Array[outIdx++]=192|u>>6;outU8Array[outIdx++]=128|u&63}else if(u<=65535){if(outIdx+2>=endIdx)break;outU8Array[outIdx++]=224|u>>12;outU8Array[outIdx++]=128|u>>6&63;outU8Array[outIdx++]=128|u&63}else if(u<=2097151){if(outIdx+3>=endIdx)break;outU8Array[outIdx++]=240|u>>18;outU8Array[outIdx++]=128|u>>12&63;outU8Array[outIdx++]=128|u>>6&63;outU8Array[outIdx++]=128|u&63}else if(u<=67108863){if(outIdx+4>=endIdx)break;outU8Array[outIdx++]=248|u>>24;outU8Array[outIdx++]=128|u>>18&63;outU8Array[outIdx++]=128|u>>12&63;outU8Array[outIdx++]=128|u>>6&63;outU8Array[outIdx++]=128|u&63}else{if(outIdx+5>=endIdx)break;outU8Array[outIdx++]=252|u>>30;outU8Array[outIdx++]=128|u>>24&63;outU8Array[outIdx++]=128|u>>18&63;outU8Array[outIdx++]=128|u>>12&63;outU8Array[outIdx++]=128|u>>6&63;outU8Array[outIdx++]=128|u&63}}outU8Array[outIdx]=0;return outIdx-startIdx}Module["stringToUTF8Array"]=stringToUTF8Array;function stringToUTF8(str,outPtr,maxBytesToWrite){return stringToUTF8Array(str,HEAPU8,outPtr,maxBytesToWrite)}Module["stringToUTF8"]=stringToUTF8;function lengthBytesUTF8(str){var len=0;for(var i=0;i<str.length;++i){var u=str.charCodeAt(i);if(u>=55296&&u<=57343)u=65536+((u&1023)<<10)|str.charCodeAt(++i)&1023;if(u<=127){++len}else if(u<=2047){len+=2}else if(u<=65535){len+=3}else if(u<=2097151){len+=4}else if(u<=67108863){len+=5}else{len+=6}}return len}Module["lengthBytesUTF8"]=lengthBytesUTF8;var UTF16Decoder=typeof TextDecoder!=="undefined"?new TextDecoder("utf-16le"):undefined;function demangle(func){var __cxa_demangle_func=Module["___cxa_demangle"]||Module["__cxa_demangle"];if(__cxa_demangle_func){try{var s=func.substr(1);var len=lengthBytesUTF8(s)+1;var buf=_malloc(len);stringToUTF8(s,buf,len);var status=_malloc(4);var ret=__cxa_demangle_func(buf,0,0,status);if(getValue(status,"i32")===0&&ret){return Pointer_stringify(ret)}}catch(e){}finally{if(buf)_free(buf);if(status)_free(status);if(ret)_free(ret)}return func}Runtime.warnOnce("warning: build with  -s DEMANGLE_SUPPORT=1  to link in libcxxabi demangling");return func}function demangleAll(text){var regex=/__Z[\w\d_]+/g;return text.replace(regex,(function(x){var y=demangle(x);return x===y?x:x+" ["+y+"]"}))}function jsStackTrace(){var err=new Error;if(!err.stack){try{throw new Error(0)}catch(e){err=e}if(!err.stack){return"(no stack trace available)"}}return err.stack.toString()}function stackTrace(){var js=jsStackTrace();if(Module["extraStackTrace"])js+="\n"+Module["extraStackTrace"]();return demangleAll(js)}Module["stackTrace"]=stackTrace;var HEAP,buffer,HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;function updateGlobalBufferViews(){Module["HEAP8"]=HEAP8=new Int8Array(buffer);Module["HEAP16"]=HEAP16=new Int16Array(buffer);Module["HEAP32"]=HEAP32=new Int32Array(buffer);Module["HEAPU8"]=HEAPU8=new Uint8Array(buffer);Module["HEAPU16"]=HEAPU16=new Uint16Array(buffer);Module["HEAPU32"]=HEAPU32=new Uint32Array(buffer);Module["HEAPF32"]=HEAPF32=new Float32Array(buffer);Module["HEAPF64"]=HEAPF64=new Float64Array(buffer)}var STATIC_BASE,STATICTOP,staticSealed;var STACK_BASE,STACKTOP,STACK_MAX;var DYNAMIC_BASE,DYNAMICTOP_PTR;STATIC_BASE=STATICTOP=STACK_BASE=STACKTOP=STACK_MAX=DYNAMIC_BASE=DYNAMICTOP_PTR=0;staticSealed=false;function abortOnCannotGrowMemory(){abort("Cannot enlarge memory arrays. Either (1) compile with  -s TOTAL_MEMORY=X  with X higher than the current value "+TOTAL_MEMORY+", (2) compile with  -s ALLOW_MEMORY_GROWTH=1  which allows increasing the size at runtime but prevents some optimizations, (3) set Module.TOTAL_MEMORY to a higher value before the program runs, or (4) if you want malloc to return NULL (0) instead of this abort, compile with  -s ABORTING_MALLOC=0 ")}function enlargeMemory(){abortOnCannotGrowMemory()}var TOTAL_STACK=Module["TOTAL_STACK"]||5242880;var TOTAL_MEMORY=Module["TOTAL_MEMORY"]||16777216;if(TOTAL_MEMORY<TOTAL_STACK)Module.printErr("TOTAL_MEMORY should be larger than TOTAL_STACK, was "+TOTAL_MEMORY+"! (TOTAL_STACK="+TOTAL_STACK+")");if(Module["buffer"]){buffer=Module["buffer"]}else{{buffer=new ArrayBuffer(TOTAL_MEMORY)}}updateGlobalBufferViews();function getTotalMemory(){return TOTAL_MEMORY}HEAP32[0]=1668509029;HEAP16[1]=25459;if(HEAPU8[2]!==115||HEAPU8[3]!==99)throw"Runtime error: expected the system to be little-endian!";Module["HEAP"]=HEAP;Module["buffer"]=buffer;Module["HEAP8"]=HEAP8;Module["HEAP16"]=HEAP16;Module["HEAP32"]=HEAP32;Module["HEAPU8"]=HEAPU8;Module["HEAPU16"]=HEAPU16;Module["HEAPU32"]=HEAPU32;Module["HEAPF32"]=HEAPF32;Module["HEAPF64"]=HEAPF64;function callRuntimeCallbacks(callbacks){while(callbacks.length>0){var callback=callbacks.shift();if(typeof callback=="function"){callback();continue}var func=callback.func;if(typeof func==="number"){if(callback.arg===undefined){Module["dynCall_v"](func)}else{Module["dynCall_vi"](func,callback.arg)}}else{func(callback.arg===undefined?null:callback.arg)}}}var __ATPRERUN__=[];var __ATINIT__=[];var __ATMAIN__=[];var __ATEXIT__=[];var __ATPOSTRUN__=[];var runtimeInitialized=false;var runtimeExited=false;function preRun(){if(Module["preRun"]){if(typeof Module["preRun"]=="function")Module["preRun"]=[Module["preRun"]];while(Module["preRun"].length){addOnPreRun(Module["preRun"].shift())}}callRuntimeCallbacks(__ATPRERUN__)}function ensureInitRuntime(){if(runtimeInitialized)return;runtimeInitialized=true;callRuntimeCallbacks(__ATINIT__)}function preMain(){callRuntimeCallbacks(__ATMAIN__)}function exitRuntime(){callRuntimeCallbacks(__ATEXIT__);runtimeExited=true}function postRun(){if(Module["postRun"]){if(typeof Module["postRun"]=="function")Module["postRun"]=[Module["postRun"]];while(Module["postRun"].length){addOnPostRun(Module["postRun"].shift())}}callRuntimeCallbacks(__ATPOSTRUN__)}function addOnPreRun(cb){__ATPRERUN__.unshift(cb)}Module["addOnPreRun"]=addOnPreRun;function addOnInit(cb){__ATINIT__.unshift(cb)}Module["addOnInit"]=addOnInit;function addOnPreMain(cb){__ATMAIN__.unshift(cb)}Module["addOnPreMain"]=addOnPreMain;function addOnExit(cb){__ATEXIT__.unshift(cb)}Module["addOnExit"]=addOnExit;function addOnPostRun(cb){__ATPOSTRUN__.unshift(cb)}Module["addOnPostRun"]=addOnPostRun;function intArrayFromString(stringy,dontAddNull,length){var len=length>0?length:lengthBytesUTF8(stringy)+1;var u8array=new Array(len);var numBytesWritten=stringToUTF8Array(stringy,u8array,0,u8array.length);if(dontAddNull)u8array.length=numBytesWritten;return u8array}Module["intArrayFromString"]=intArrayFromString;function intArrayToString(array){var ret=[];for(var i=0;i<array.length;i++){var chr=array[i];if(chr>255){chr&=255}ret.push(String.fromCharCode(chr))}return ret.join("")}Module["intArrayToString"]=intArrayToString;function writeStringToMemory(string,buffer,dontAddNull){Runtime.warnOnce("writeStringToMemory is deprecated and should not be called! Use stringToUTF8() instead!");var lastChar,end;if(dontAddNull){end=buffer+lengthBytesUTF8(string);lastChar=HEAP8[end]}stringToUTF8(string,buffer,Infinity);if(dontAddNull)HEAP8[end]=lastChar}Module["writeStringToMemory"]=writeStringToMemory;function writeArrayToMemory(array,buffer){HEAP8.set(array,buffer)}Module["writeArrayToMemory"]=writeArrayToMemory;function writeAsciiToMemory(str,buffer,dontAddNull){for(var i=0;i<str.length;++i){HEAP8[buffer++>>0]=str.charCodeAt(i)}if(!dontAddNull)HEAP8[buffer>>0]=0}Module["writeAsciiToMemory"]=writeAsciiToMemory;if(!Math["imul"]||Math["imul"](4294967295,5)!==-5)Math["imul"]=function imul(a,b){var ah=a>>>16;var al=a&65535;var bh=b>>>16;var bl=b&65535;return al*bl+(ah*bl+al*bh<<16)|0};Math.imul=Math["imul"];if(!Math["clz32"])Math["clz32"]=(function(x){x=x>>>0;for(var i=0;i<32;i++){if(x&1<<31-i)return i}return 32});Math.clz32=Math["clz32"];if(!Math["trunc"])Math["trunc"]=(function(x){return x<0?Math.ceil(x):Math.floor(x)});Math.trunc=Math["trunc"];var Math_abs=Math.abs;var Math_cos=Math.cos;var Math_sin=Math.sin;var Math_tan=Math.tan;var Math_acos=Math.acos;var Math_asin=Math.asin;var Math_atan=Math.atan;var Math_atan2=Math.atan2;var Math_exp=Math.exp;var Math_log=Math.log;var Math_sqrt=Math.sqrt;var Math_ceil=Math.ceil;var Math_floor=Math.floor;var Math_pow=Math.pow;var Math_imul=Math.imul;var Math_fround=Math.fround;var Math_round=Math.round;var Math_min=Math.min;var Math_clz32=Math.clz32;var Math_trunc=Math.trunc;var runDependencies=0;var runDependencyWatcher=null;var dependenciesFulfilled=null;function addRunDependency(id){runDependencies++;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}}Module["addRunDependency"]=addRunDependency;function removeRunDependency(id){runDependencies--;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}if(runDependencies==0){if(runDependencyWatcher!==null){clearInterval(runDependencyWatcher);runDependencyWatcher=null}if(dependenciesFulfilled){var callback=dependenciesFulfilled;dependenciesFulfilled=null;callback()}}}Module["removeRunDependency"]=removeRunDependency;Module["preloadedImages"]={};Module["preloadedAudios"]={};var ASM_CONSTS=[];STATIC_BASE=Runtime.GLOBAL_BASE;STATICTOP=STATIC_BASE+25808;__ATINIT__.push();allocate([0,0,206,64,0,0,200,64,0,0,184,64,0,0,170,64,0,0,162,64,0,0,154,64,0,0,144,64,0,0,140,64,0,0,156,64,0,0,150,64,0,0,146,64,0,0,142,64,0,0,156,64,0,0,148,64,0,0,138,64,0,0,144,64,0,0,140,64,0,0,148,64,0,0,152,64,0,0,142,64,0,0,112,64,0,0,112,64,0,0,112,64,0,0,112,64,0,0,112,64,146,80,0,0,154,80,0,0,170,80,0,0,202,80,0,0,242,80,0,0,66,81,0,0,32,0,10,0,20,46,100,1,226,81,0,0,34,83,0,0,98,83,0,0,116,83,0,0,20,84,0,0,92,84,0,0,24,69,0,0,32,0,16,0,102,38,171,1,164,84,0,0,164,86,0,0,228,86,0,0,2,87,0,0,2,88,0,0,74,88,0,0,46,69,0,0,173,88,0,0,176,88,0,0,1,0,0,0,0,0,0,0,3,0,0,0,0,0,0,0,2,0,0,0,1,0,0,0,7,0,0,0,0,0,0,0,4,0,0,0,3,0,0,0,6,0,0,0,1,0,0,0,5,0,0,0,2,0,0,0,15,0,0,0,0,0,0,0,8,0,0,0,7,0,0,0,12,0,0,0,3,0,0,0,11,0,0,0,4,0,0,0,14,0,0,0,1,0,0,0,9,0,0,0,6,0,0,0,13,0,0,0,2,0,0,0,10,0,0,0,5,0,0,0,15,0,0,0,10,0,0,0,5,0,0,0,148,1,0,0,84,4,0,0,16,7,0,0,200,9,0,0,124,12,0,0,44,15,0,0,216,17,0,0,64,19,0,0,252,19,0,0,112,20,0,0,188,20,0,0,244,20,0,0,20,21,0,0,44,21,0,0,56,21,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,3,0,0,0,5,0,0,0,7,0,0,0,9,0,0,0,11,0,0,0,13,0,0,0,15,0,0,0,17,0,0,0,19,0,0,0,21,0,0,0,23,0,0,0,25,0,0,0,27,0,0,0,29,0,0,0,31,0,0,0,33,0,0,0,35,0,0,0,37,0,0,0,39,0,0,0,41,0,0,0,43,0,0,0,45,0,0,0,47,0,0,0,49,0,0,0,51,0,0,0,53,0,0,0,55,0,0,0,57,0,0,0,59,0,0,0,61,0,0,0,63,0,0,0,65,0,0,0,67,0,0,0,69,0,0,0,71,0,0,0,73,0,0,0,75,0,0,0,77,0,0,0,79,0,0,0,81,0,0,0,83,0,0,0,85,0,0,0,87,0,0,0,89,0,0,0,91,0,0,0,93,0,0,0,95,0,0,0,97,0,0,0,99,0,0,0,101,0,0,0,103,0,0,0,105,0,0,0,107,0,0,0,109,0,0,0,111,0,0,0,113,0,0,0,115,0,0,0,117,0,0,0,119,0,0,0,121,0,0,0,123,0,0,0,125,0,0,0,127,0,0,0,129,0,0,0,131,0,0,0,133,0,0,0,135,0,0,0,137,0,0,0,139,0,0,0,141,0,0,0,143,0,0,0,145,0,0,0,147,0,0,0,149,0,0,0,151,0,0,0,153,0,0,0,155,0,0,0,157,0,0,0,159,0,0,0,161,0,0,0,163,0,0,0,165,0,0,0,167,0,0,0,169,0,0,0,171,0,0,0,173,0,0,0,175,0,0,0,177,0,0,0,179,0,0,0,181,0,0,0,183,0,0,0,185,0,0,0,187,0,0,0,189,0,0,0,191,0,0,0,193,0,0,0,195,0,0,0,197,0,0,0,199,0,0,0,201,0,0,0,203,0,0,0,205,0,0,0,207,0,0,0,209,0,0,0,211,0,0,0,213,0,0,0,215,0,0,0,217,0,0,0,219,0,0,0,221,0,0,0,223,0,0,0,225,0,0,0,227,0,0,0,229,0,0,0,231,0,0,0,233,0,0,0,235,0,0,0,237,0,0,0,239,0,0,0,241,0,0,0,243,0,0,0,245,0,0,0,247,0,0,0,249,0,0,0,251,0,0,0,253,0,0,0,255,0,0,0,1,1,0,0,3,1,0,0,5,1,0,0,7,1,0,0,9,1,0,0,11,1,0,0,13,1,0,0,15,1,0,0,17,1,0,0,19,1,0,0,21,1,0,0,23,1,0,0,25,1,0,0,27,1,0,0,29,1,0,0,31,1,0,0,33,1,0,0,35,1,0,0,37,1,0,0,39,1,0,0,41,1,0,0,43,1,0,0,45,1,0,0,47,1,0,0,49,1,0,0,51,1,0,0,53,1,0,0,55,1,0,0,57,1,0,0,59,1,0,0,61,1,0,0,63,1,0,0,65,1,0,0,67,1,0,0,69,1,0,0,71,1,0,0,73,1,0,0,75,1,0,0,77,1,0,0,79,1,0,0,81,1,0,0,83,1,0,0,85,1,0,0,87,1,0,0,89,1,0,0,91,1,0,0,93,1,0,0,95,1,0,0,13,0,0,0,25,0,0,0,41,0,0,0,61,0,0,0,85,0,0,0,113,0,0,0,145,0,0,0,181,0,0,0,221,0,0,0,9,1,0,0,57,1,0,0,109,1,0,0,165,1,0,0,225,1,0,0,33,2,0,0,101,2,0,0,173,2,0,0,249,2,0,0,73,3,0,0,157,3,0,0,245,3,0,0,81,4,0,0,177,4,0,0,21,5,0,0,125,5,0,0,233,5,0,0,89,6,0,0,205,6,0,0,69,7,0,0,193,7,0,0,65,8,0,0,197,8,0,0,77,9,0,0,217,9,0,0,105,10,0,0,253,10,0,0,149,11,0,0,49,12,0,0,209,12,0,0,117,13,0,0,29,14,0,0,201,14,0,0,121,15,0,0,45,16,0,0,229,16,0,0,161,17,0,0,97,18,0,0,37,19,0,0,237,19,0,0,185,20,0,0,137,21,0,0,93,22,0,0,53,23,0,0,17,24,0,0,241,24,0,0,213,25,0,0,189,26,0,0,169,27,0,0,153,28,0,0,141,29,0,0,133,30,0,0,129,31,0,0,129,32,0,0,133,33,0,0,141,34,0,0,153,35,0,0,169,36,0,0,189,37,0,0,213,38,0,0,241,39,0,0,17,41,0,0,53,42,0,0,93,43,0,0,137,44,0,0,185,45,0,0,237,46,0,0,37,48,0,0,97,49,0,0,161,50,0,0,229,51,0,0,45,53,0,0,121,54,0,0,201,55,0,0,29,57,0,0,117,58,0,0,209,59,0,0,49,61,0,0,149,62,0,0,253,63,0,0,105,65,0,0,217,66,0,0,77,68,0,0,197,69,0,0,65,71,0,0,193,72,0,0,69,74,0,0,205,75,0,0,89,77,0,0,233,78,0,0,125,80,0,0,21,82,0,0,177,83,0,0,81,85,0,0,245,86,0,0,157,88,0,0,73,90,0,0,249,91,0,0,173,93,0,0,101,95,0,0,33,97,0,0,225,98,0,0,165,100,0,0,109,102,0,0,57,104,0,0,9,106,0,0,221,107,0,0,181,109,0,0,145,111,0,0,113,113,0,0,85,115,0,0,61,117,0,0,41,119,0,0,25,121,0,0,13,123,0,0,5,125,0,0,1,127,0,0,1,129,0,0,5,131,0,0,13,133,0,0,25,135,0,0,41,137,0,0,61,139,0,0,85,141,0,0,113,143,0,0,145,145,0,0,181,147,0,0,221,149,0,0,9,152,0,0,57,154,0,0,109,156,0,0,165,158,0,0,225,160,0,0,33,163,0,0,101,165,0,0,173,167,0,0,249,169,0,0,73,172,0,0,157,174,0,0,245,176,0,0,81,179,0,0,177,181,0,0,21,184,0,0,125,186,0,0,233,188,0,0,89,191,0,0,205,193,0,0,69,196,0,0,193,198,0,0,65,201,0,0,197,203,0,0,77,206,0,0,217,208,0,0,105,211,0,0,253,213,0,0,149,216,0,0,49,219,0,0,209,221,0,0,117,224,0,0,29,227,0,0,201,229,0,0,121,232,0,0,45,235,0,0,229,237,0,0,161,240,0,0,63,0,0,0,129,0,0,0,231,0,0,0,121,1,0,0,63,2,0,0,65,3,0,0,135,4,0,0,25,6,0,0,255,7,0,0,65,10,0,0,231,12,0,0,249,15,0,0,127,19,0,0,129,23,0,0,7,28,0,0,25,33,0,0,191,38,0,0,1,45,0,0,231,51,0,0,121,59,0,0,191,67,0,0,193,76,0,0,135,86,0,0,25,97,0,0,127,108,0,0,193,120,0,0,231,133,0,0,249,147,0,0,255,162,0,0,1,179,0,0,7,196,0,0,25,214,0,0,63,233,0,0,129,253,0,0,231,18,1,0,121,41,1,0,63,65,1,0,65,90,1,0,135,116,1,0,25,144,1,0,255,172,1,0,65,203,1,0,231,234,1,0,249,11,2,0,127,46,2,0,129,82,2,0,7,120,2,0,25,159,2,0,191,199,2,0,1,242,2,0,231,29,3,0,121,75,3,0,191,122,3,0,193,171,3,0,135,222,3,0,25,19,4,0,127,73,4,0,193,129,4,0,231,187,4,0,249,247,4,0,255,53,5,0,1,118,5,0,7,184,5,0,25,252,5,0,63,66,6,0,129,138,6,0,231,212,6,0,121,33,7,0,63,112,7,0,65,193,7,0,135,20,8,0,25,106,8,0,255,193,8,0,65,28,9,0,231,120,9,0,249,215,9,0,127,57,10,0,129,157,10,0,7,4,11,0,25,109,11,0,191,216,11,0,1,71,12,0,231,183,12,0,121,43,13,0,191,161,13,0,193,26,14,0,135,150,14,0,25,21,15,0,127,150,15,0,193,26,16,0,231,161,16,0,249,43,17,0,255,184,17,0,1,73,18,0,7,220,18,0,25,114,19,0,63,11,20,0,129,167,20,0,231,70,21,0,121,233,21,0,63,143,22,0,65,56,23,0,135,228,23,0,25,148,24,0,255,70,25,0,65,253,25,0,231,182,26,0,249,115,27,0,127,52,28,0,129,248,28,0,7,192,29,0,25,139,30,0,191,89,31,0,1,44,32,0,231,1,33,0,121,219,33,0,191,184,34,0,193,153,35,0,135,126,36,0,25,103,37,0,127,83,38,0,193,67,39,0,231,55,40,0,249,47,41,0,255,43,42,0,1,44,43,0,7,48,44,0,25,56,45,0,63,68,46,0,129,84,47,0,231,104,48,0,121,129,49,0,63,158,50,0,65,191,51,0,135,228,52,0,25,14,54,0,255,59,55,0,65,110,56,0,231,164,57,0,249,223,58,0,127,31,60,0,129,99,61,0,7,172,62,0,25,249,63,0,191,74,65,0,1,161,66,0,231,251,67,0,121,91,69,0,191,191,70,0,193,40,72,0,135,150,73,0,25,9,75,0,127,128,76,0,193,252,77,0,231,125,79,0,249,3,81,0,255,142,82,0,1,31,84,0,7,180,85,0,25,78,87,0,63,237,88,0,129,145,90,0,231,58,92,0,121,233,93,0,63,157,95,0,65,86,97,0,135,20,99,0,25,216,100,0,255,160,102,0,65,111,104,0,231,66,106,0,249,27,108,0,127,250,109,0,65,1,0,0,169,2,0,0,9,5,0,0,193,8,0,0,65,14,0,0,9,22,0,0,169,32,0,0,193,46,0,0,1,65,0,0,41,88,0,0,9,117,0,0,129,152,0,0,129,195,0,0,9,247,0,0,41,52,1,0,1,124,1,0,193,207,1,0,169,48,2,0,9,160,2,0,65,31,3,0,193,175,3,0,9,83,4,0,169,10,5,0,65,216,5,0,129,189,6,0,41,188,7,0,9,214,8,0,1,13,10,0,1,99,11,0,9,218,12,0,41,116,14,0,129,51,16,0,65,26,18,0,169,42,20,0,9,103,22,0,193,209,24,0,65,109,27,0,9,60,30,0,169,64,33,0,193,125,36,0,1,246,39,0,41,172,43,0,9,163,47,0,129,221,51,0,129,94,56,0,9,41,61,0,41,64,66,0,1,167,71,0,193,96,77,0,169,112,83,0,9,218,89,0,65,160,96,0,193,198,103,0,9,81,111,0,169,66,119,0,65,159,127,0,129,106,136,0,41,168,145,0,9,92,155,0,1,138,165,0,1,54,176,0,9,100,187,0,41,24,199,0,129,86,211,0,65,35,224,0,169,130,237,0,9,121,251,0,193,10,10,1,65,60,25,1,9,18,41,1,169,144,57,1,193,188,74,1,1,155,92,1,41,48,111,1,9,129,130,1,129,146,150,1,129,105,171,1,9,11,193,1,41,124,215,1,1,194,238,1,193,225,6,2,169,224,31,2,9,196,57,2,65,145,84,2,193,77,112,2,9,255,140,2,169,170,170,2,65,86,201,2,129,7,233,2,41,196,9,3,9,146,43,3,1,119,78,3,1,121,114,3,9,158,151,3,41,236,189,3,129,105,229,3,65,28,14,4,169,10,56,4,9,59,99,4,193,179,143,4,65,123,189,4,9,152,236,4,169,16,29,5,193,235,78,5,1,48,130,5,41,228,182,5,9,15,237,5,129,183,36,6,129,228,93,6,9,157,152,6,41,232,212,6,1,205,18,7,193,82,82,7,169,128,147,7,9,94,214,7,65,242,26,8,193,68,97,8,9,93,169,8,169,66,243,8,65,253,62,9,129,148,140,9,41,16,220,9,9,120,45,10,1,212,128,10,1,44,214,10,9,136,45,11,41,240,134,11,129,108,226,11,65,5,64,12,169,194,159,12,9,173,1,13,193,204,101,13,65,42,204,13,9,206,52,14,169,192,159,14,193,10,13,15,1,181,124,15,41,200,238,15,9,77,99,16,129,76,218,16,129,207,83,17,9,223,207,17,41,132,78,18,1,200,207,18,193,179,83,19,169,80,218,19,9,168,99,20,65,195,239,20,193,171,126,21,9,107,16,22,169,10,165,22,65,148,60,23,129,17,215,23,41,140,116,24,9,14,21,25,1,161,184,25,1,79,95,26,9,34,9,27,41,36,182,27,129,95,102,28,65,222,25,29,169,170,208,29,9,207,138,30,193,85,72,31,65,73,9,32,9,180,205,32,169,160,149,33,193,25,97,34,1,42,48,35,41,220,2,36,9,59,217,36,129,81,179,37,147,6,0,0,69,14,0,0,15,28,0,0,17,51,0,0,91,87,0,0,13,142,0,0,119,221,0,0,57,77,1,0,99,230,1,0,149,179,2,0,31,193,3,0,33,29,5,0,171,215,6,0,221,2,9,0,7,179,11,0,201,254,14,0,51,255,18,0,229,207,23,0,47,143,29,0,49,94,36,0,251,96,44,0,173,190,53,0,151,161,64,0,89,55,77,0,3,177,91,0,53,67,108,0,63,38,127,0,65,150,148,0,75,211,172,0,125,33,200,0,39,201,230,0,233,22,9,1,211,91,47,1,133,237,89,1,79,38,137,1,81,101,189,1,155,14,247,1,77,139,54,2,183,73,124,2,121,189,200,2,163,95,28,3,213,174,119,3,95,47,219,3,97,107,71,4,235,242,188,4,29,92,60,5,71,67,198,5,9,75,91,6,115,28,252,6,37,103,169,7,111,225,99,8,113,72,44,9,59,96,3,10,237,243,233,10,215,213,224,11,153,223,232,12,67,242,2,14,117,246,47,15,127,220,112,16,129,156,198,17,139,54,50,19,189,178,180,20,103,33,79,22,41,155,2,24,19,65,208,25,197,60,185,27,143,192,190,29,145,7,226,31,219,85,36,34,141,248,134,36,247,69,11,39,185,157,178,41,227,104,126,44,21,26,112,47,159,45,137,50,161,41,203,53,43,158,55,57,93,37,208,60,135,99,150,64,73,7,140,68,179,201,178,72,101,110,12,77,175,195,154,81,177,162,95,86,123,239,92,91,45,153,148,96,23,154,8,102,217,247,186,107,131,195,173,113,181,25,227,119,191,34,93,126,29,35,0,0,113,77,0,0,145,156,0,0,253,38,1,0,101,12,2,0,233,119,3,0,153,162,5,0,53,214,8,0,45,112,13,0,225,228,19,0,33,195,28,0,237,183,40,0,117,146,56,0,89,72,77,0,41,250,103,0,37,248,137,0,61,199,180,0,81,38,234,0,177,19,44,1,221,210,124,1,133,242,222,1,201,82,85,2,185,43,227,2,21,20,140,3,77,8,84,4,193,113,63,5,65,46,83,6,205,151,148,7,149,140,9,9,57,119,184,10,73,87,168,12,5,202,224,14,93,19,106,17,49,39,77,20,209,178,147,23,189,38,72,27,165,192,117,31,169,149,40,36,217,156,109,41,245,185,82,47,109,200,230,53,161,166,57,61,97,65,92,69,173,159,96,78,181,238,89,88,25,142,92,99,105,28,126,111,229,131,213,124,255,189,0,0,1,168,1,0,143,107,3,0,241,158,6,0,63,35,12,0,193,61,21,0,143,182,35,0,241,252,57,0,255,81,91,0,1,250,139,0,15,117,209,0,113,191,50,1,63,154,184,1,193,220,109,2,15,207,95,3,113,142,158,4,255,123,61,6,1,182,83,8,143,156,252,10,241,97,88,14,63,167,140,18,193,37,197,23,143,101,52,30,241,129,20,38,255,251,167,47,1,156,58,59,15,98,34,73,113,134,192,89,63,138,130,109,193,88,227,132,1,14,4,0,145,33,9,0,17,44,19,0,65,238,37,0,65,79,71,0,145,67,128,0,17,247,221,0,1,70,115,1,1,146,90,2,17,1,184,3,145,53,188,5,65,143,167,8,65,6,206,12,17,178,155,18,145,15,154,26,1,26,118,37,1,76,7,52,145,158,87,71,17,157,172,96,65,166,145,129,35,81,22,0,197,158,50,0,23,185,107,0,153,246,216,0,107,137,160,1,13,196,254,2,31,1,80,5,33,217,29,9,51,108,48,15,213,162,164,24,167,103,8,39,41,253,125,60,123,181,231,91,29,119,29,137,175,160,45,201,173,142,123,0,137,230,25,1,57,150,94,2,61,22,216,4,181,99,119,9,225,40,198,17,33,3,52,32,117,72,130,56,125,87,87,96,191,91,175,2,129,216,39,6,247,132,94,13,233,254,173,27,127,139,235,54,129,183,229,104,23,3,156,193,193,12,255,14,57,106,133,34,25,238,145,75,129,120,43,158,51,225,9,84,149,139,0,0,55,152,0,0,255,165,0,0,4,181,0,0,103,197,0,0,69,215,0,0,193,234,0,0,255,255,0,0,0,0,157,62,0,64,94,62,0,192,4,62,0,128,237,62,0,64,137,62,0,0,0,0,0,192,76,63,0,0,205,61,0,0,0,0,188,21,0,0,128,187,0,0,120,0,0,0,21,0,0,0,21,0,0,0,0,154,89,63,0,0,0,0,0,0,128,63,0,0,128,63,230,71,0,0,3,0,0,0,8,0,0,0,120,0,0,0,11,0,0,0,172,93,0,0,18,72,0,0,40,22,0,0,128,7,0,0,3,0,0,0,8,24,0,0,60,24,0,0,112,24,0,0,164,24,0,0,216,24,0,0,136,1,0,0,60,72,0,0,147,94,0,0,27,96,0,0,106,28,141,56,82,187,30,58,8,105,220,58,130,237,87,59,137,99,178,59,3,42,5,60,48,220,57,60,180,62,119,60,28,163,158,60,209,242,197,60,254,134,241,60,155,171,16,61,5,173,42,61,132,194,70,61,83,230,100,61,17,137,130,61,135,159,147,61,203,178,165,61,209,190,184,61,58,191,204,61,84,175,225,61,20,138,247,61,14,37,7,62,217,244,18,62,95,49,31,62,104,215,43,62,138,227,56,62,48,82,70,62,148,31,84,62,191,71,98,62,142,198,112,62,176,151,127,62,82,91,135,62,96,15,143,62,152,229,150,62,121,219,158,62,112,238,166,62,216,27,175,62,251,96,183,62,17,187,191,62,70,39,200,62,183,162,208,62,120,42,217,62,148,187,225,62,12,83,234,62,222,237,242,62,6,137,251,62,190,16,2,63,31,90,6,63,36,159,10,63,80,222,14,63,43,22,19,63,65,69,23,63,37,106,27,63,115,131,31,63,206,143,35,63,230,141,39,63,116,124,43,63,63,90,47,63,25,38,51,63,231,222,54,63,153,131,58,63,51,19,62,63,197,140,65,63,119,239,68,63,127,58,72,63,39,109,75,63,206,134,78,63,229,134,81,63,241,108,84,63,142,56,87,63,105,233,89,63,69,127,92,63,250,249,94,63,115,89,97,63,175,157,99,63,193,198,101,63,207,212,103,63,17,200,105,63,210,160,107,63,110,95,109,63,80,4,111,63,244,143,112,63,230,2,114,63,189,93,115,63,31,161,116,63,191,205,117,63,87,228,118,63,176,229,119,63,151,210,120,63,227,171,121,63,115,114,122,63,39,39,123,63,231,202,123,63,157,94,124,63,53,227,124,63,156,89,125,63,189,194,125,63,134,31,126,63,222,112,126,63,171,183,126,63,207,244,126,63,38,41,127,63,134,85,127,63,190,122,127,63,150,153,127,63,204,178,127,63,20,199,127,63,28,215,127,63,130,227,127,63,221,236,127,63,182,243,127,63,138,248,127,63,200,251,127,63,214,253,127,63,7,255,127,63,165,255,127,63,232,255,127,63,253,255,127,63,0,0,128,63,224,1,0,0,135,136,8,59,255,255,255,255,5,0,96,0,3,0,32,0,4,0,8,0,2,0,4,0,4,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,86,76,0,0,248,52,0,0,240,0,0,0,137,136,136,59,1,0,0,0,5,0,48,0,3,0,16,0,4,0,4,0,4,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,118,74,0,0,248,52,0,0,120,0,0,0,136,136,8,60,2,0,0,0,5,0,24,0,3,0,8,0,2,0,4,0,4,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,134,73,0,0,248,52,0,0,60,0,0,0,137,136,136,60,3,0,0,0,5,0,12,0,3,0,4,0,4,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,14,73,0,0,248,52,0,0,255,255,127,63,142,255,127,63,106,254,127,63,147,252,127,63,7,250,127,63,200,246,127,63,214,242,127,63,48,238,127,63,214,232,127,63,200,226,127,63,7,220,127,63,147,212,127,63,107,204,127,63,143,195,127,63,0,186,127,63,189,175,127,63,199,164,127,63,29,153,127,63,192,140,127,63,176,127,127,63,236,113,127,63,118,99,127,63,75,84,127,63,110,68,127,63,222,51,127,63,154,34,127,63,163,16,127,63,250,253,126,63,157,234,126,63,141,214,126,63,203,193,126,63,86,172,126,63,46,150,126,63,83,127,126,63,198,103,126,63,134,79,126,63,148,54,126,63,239,28,126,63,152,2,126,63,143,231,125,63,211,203,125,63,102,175,125,63,70,146,125,63,116,116,125,63,241,85,125,63,188,54,125,63,213,22,125,63,60,246,124,63,242,212,124,63,246,178,124,63,73,144,124,63,235,108,124,63,219,72,124,63,27,36,124,63,169,254,123,63,135,216,123,63,180,177,123,63,48,138,123,63,252,97,123,63,23,57,123,63,130,15,123,63,61,229,122,63,72,186,122,63,162,142,122,63,77,98,122,63,72,53,122,63,148,7,122,63,48,217,121,63,29,170,121,63,90,122,121,63,233,73,121,63,200,24,121,63,249,230,120,63,123,180,120,63,78,129,120,63,115,77,120,63,234,24,120,63,178,227,119,63,205,173,119,63,58,119,119,63,249,63,119,63,10,8,119,63,110,207,118,63,37,150,118,63,47,92,118,63,140,33,118,63,60,230,117,63,64,170,117,63,151,109,117,63,66,48,117,63,65,242,116,63,148,179,116,63,59,116,116,63,55,52,116,63,135,243,115,63,44,178,115,63,38,112,115,63,118,45,115,63,26,234,114,63,20,166,114,63,100,97,114,63,10,28,114,63,5,214,113,63,87,143,113,63,0,72,113,63,255,255,112,63,85,183,112,63,2,110,112,63,6,36,112,63,98,217,111,63,21,142,111,63,32,66,111,63,132,245,110,63,63,168,110,63,83,90,110,63,192,11,110,63,134,188,109,63,165,108,109,63,29,28,109,63,239,202,108,63,27,121,108,63,161,38,108,63,128,211,107,63,187,127,107,63,80,43,107,63,64,214,106,63,140,128,106,63,50,42,106,63,53,211,105,63,147,123,105,63,77,35,105,63,100,202,104,63,216,112,104,63,168,22,104,63,213,187,103,63,96,96,103,63,72,4,103,63,143,167,102,63,51,74,102,63,54,236,101,63,151,141,101,63,87,46,101,63,119,206,100,63,245,109,100,63,212,12,100,63,18,171,99,63,177,72,99,63,176,229,98,63,16,130,98,63,209,29,98,63,243,184,97,63,119,83,97,63,92,237,96,63,164,134,96,63,78,31,96,63,91,183,95,63,203,78,95,63,158,229,94,63,213,123,94,63,112,17,94,63,110,166,93,63,210,58,93,63,154,206,92,63,198,97,92,63,89,244,91,63,81,134,91,63,174,23,91,63,114,168,90,63,157,56,90,63,46,200,89,63,39,87,89,63,135,229,88,63,79,115,88,63,127,0,88,63,23,141,87,63,24,25,87,63,130,164,86,63,86,47,86,63,147,185,85,63,58,67,85,63,75,204,84,63,199,84,84,63,174,220,83,63,1,100,83,63,191,234,82,63,233,112,82,63,127,246,81,63,130,123,81,63,242,255,80,63,207,131,80,63,26,7,80,63,210,137,79,63,250,11,79,63,144,141,78,63,148,14,78,63,9,143,77,63,237,14,77,63,65,142,76,63,5,13,76,63,59,139,75,63,225,8,75,63,249,133,74,63,131,2,74,63,127,126,73,63,238,249,72,63,207,116,72,63,36,239,71,63,237,104,71,63,41,226,70,63,218,90,70,63,0,211,69,63,155,74,69,63,172,193,68,63,50,56,68,63,47,174,67,63,162,35,67,63,141,152,66,63,239,12,66,63,200,128,65,63,26,244,64,63,229,102,64,63,40,217,63,63,229,74,63,63,27,188,62,63,204,44,62,63,247,156,61,63,157,12,61,63,190,123,60,63,92,234,59,63,117,88,59,63,10,198,58,63,29,51,58,63,173,159,57,63,187,11,57,63,71,119,56,63,81,226,55,63,218,76,55,63,227,182,54,63,107,32,54,63,116,137,53,63,253,241,52,63,7,90,52,63,147,193,51,63,160,40,51,63,48,143,50,63,66,245,49,63,216,90,49,63,241,191,48,63,142,36,48,63,175,136,47,63,85,236,46,63,129,79,46,63,50,178,45,63,105,20,45,63,39,118,44,63,107,215,43,63,55,56,43,63,139,152,42,63,103,248,41,63,204,87,41,63,186,182,40,63,50,21,40,63,51,115,39,63,191,208,38,63,214,45,38,63,121,138,37,63,167,230,36,63,97,66,36,63,169,157,35,63,125,248,34,63,223,82,34,63,207,172,33,63,77,6,33,63,91,95,32,63,248,183,31,63,37,16,31,63,226,103,30,63,48,191,29,63,16,22,29,63,129,108,28,63,132,194,27,63,26,24,27,63,67,109,26,63,0,194,25,63,81,22,25,63,54,106,24,63,177,189,23,63,193,16,23,63,103,99,22,63,163,181,21,63,118,7,21,63,225,88,20,63,228,169,19,63,127,250,18,63,179,74,18,63,128,154,17,63,231,233,16,63,232,56,16,63,132,135,15,63,187,213,14,63,142,35,14,63,254,112,13,63,10,190,12,63,179,10,12,63,250,86,11,63,223,162,10,63,99,238,9,63,134,57,9,63,73,132,8,63,172,206,7,63,175,24,7,63,84,98,6,63,155,171,5,63,131,244,4,63,15,61,4,63,61,133,3,63,15,205,2,63,134,20,2,63,161,91,1,63,97,162,0,63,143,209,255,62,167,93,254,62,14,233,252,62,194,115,251,62,198,253,249,62,27,135,248,62,193,15,247,62,186,151,245,62,6,31,244,62,168,165,242,62,158,43,241,62,236,176,239,62,145,53,238,62,144,185,236,62,232,60,235,62,154,191,233,62,169,65,232,62,21,195,230,62,223,67,229,62,8,196,227,62,145,67,226,62,124,194,224,62,200,64,223,62,120,190,221,62,140,59,220,62,6,184,218,62,230,51,217,62,46,175,215,62,223,41,214,62,249,163,212,62,125,29,211,62,110,150,209,62,204,14,208,62,151,134,206,62,210,253,204,62,125,116,203,62,153,234,201,62,39,96,200,62,40,213,198,62,159,73,197,62,138,189,195,62,236,48,194,62,198,163,192,62,25,22,191,62,230,135,189,62,45,249,187,62,241,105,186,62,50,218,184,62,241,73,183,62,47,185,181,62,238,39,180,62,47,150,178,62,242,3,177,62,57,113,175,62,4,222,173,62,86,74,172,62,47,182,170,62,144,33,169,62,122,140,167,62,239,246,165,62,239,96,164,62,124,202,162,62,151,51,161,62,64,156,159,62,122,4,158,62,68,108,156,62,161,211,154,62,145,58,153,62,22,161,151,62,48,7,150,62,225,108,148,62,41,210,146,62,11,55,145,62,135,155,143,62,158,255,141,62,81,99,140,62,162,198,138,62,145,41,137,62,32,140,135,62,80,238,133,62,34,80,132,62,151,177,130,62,176,18,129,62,222,230,126,62,169,167,123,62,195,103,120,62,47,39,117,62,238,229,113,62,4,164,110,62,115,97,107,62,60,30,104,62,98,218,100,62,232,149,97,62,207,80,94,62,26,11,91,62,204,196,87,62,230,125,84,62,107,54,81,62,93,238,77,62,191,165,74,62,146,92,71,62,218,18,68,62,151,200,64,62,206,125,61,62,128,50,58,62,174,230,54,62,93,154,51,62,141,77,48,62,66,0,45,62,125,178,41,62,66,100,38,62,145,21,35,62,110,198,31,62,219,118,28,62,218,38,25,62,109,214,21,62,152,133,18,62,91,52,15,62,186,226,11,62,183,144,8,62,84,62,5,62,148,235,1,62,240,48,253,61,6,138,246,61,113,226,239,61,51,58,233,61,79,145,226,61,207,231,219,61,181,61,213,61,3,147,206,61,192,231,199,61,242,59,193,61,156,143,186,61,195,226,179,61,108,53,173,61,155,135,166,61,85,217,159,61,159,42,153,61,126,123,146,61,246,203,139,61,11,28,133,61,135,215,124,61,70,118,111,61,93,20,98,61,214,177,84,61,185,78,71,61,16,235,57,61,229,134,44,61,64,34,31,61,44,189,17,61,178,87,4,61,181,227,237,60,96,23,211,60,118,74,184,60,11,125,157,60,50,175,130,60,250,193,79,60,254,36,26,60,42,15,201,59,153,167,59,59,46,125,214,185,210,70,113,187,171,222,227,187,166,140,39,188,129,41,93,188,225,98,137,188,160,48,164,188,236,253,190,188,179,202,217,188,224,150,244,188,49,177,7,189,147,22,21,189,140,123,34,189,19,224,47,189,30,68,61,189,165,167,74,189,157,10,88,189,254,108,101,189,190,206,114,189,234,23,128,189,27,200,134,189,237,119,141,189,92,39,148,189,99,214,154,189,253,132,161,189,38,51,168,189,217,224,174,189,17,142,181,189,202,58,188,189,254,230,194,189,170,146,201,189,200,61,208,189,84,232,214,189,74,146,221,189,164,59,228,189,93,228,234,189,114,140,241,189,221,51,248,189,154,218,254,189,82,192,2,190,252,18,6,190,71,101,9,190,50,183,12,190,186,8,16,190,221,89,19,190,152,170,22,190,234,250,25,190,208,74,29,190,71,154,32,190,78,233,35,190,225,55,39,190,0,134,42,190,166,211,45,190,211,32,49,190,131,109,52,190,181,185,55,190,101,5,59,190,147,80,62,190,58,155,65,190,90,229,68,190,240,46,72,190,249,119,75,190,116,192,78,190,93,8,82,190,179,79,85,190,115,150,88,190,156,220,91,190,42,34,95,190,27,103,98,190,109,171,101,190,31,239,104,190,44,50,108,190,148,116,111,190,84,182,114,190,106,247,117,190,211,55,121,190,141,119,124,190,150,182,127,190,117,122,129,190,69,25,131,190,185,183,132,190,208,85,134,190,136,243,135,190,225,144,137,190,218,45,139,190,112,202,140,190,164,102,142,190,116,2,144,190,223,157,145,190,228,56,147,190,129,211,148,190,182,109,150,190,129,7,152,190,226,160,153,190,215,57,155,190,95,210,156,190,121,106,158,190,35,2,160,190,94,153,161,190,38,48,163,190,125,198,164,190,96,92,166,190,206,241,167,190,198,134,169,190,71,27,171,190,80,175,172,190,224,66,174,190,245,213,175,190,143,104,177,190,173,250,178,190,77,140,180,190,110,29,182,190,16,174,183,190,48,62,185,190,207,205,186,190,234,92,188,190,130,235,189,190,148,121,191,190,31,7,193,190,35,148,194,190,159,32,196,190,145,172,197,190,248,55,199,190,211,194,200,190,34,77,202,190,226,214,203,190,19,96,205,190,181,232,206,190,197,112,208,190,66,248,209,190,45,127,211,190,131,5,213,190,67,139,214,190,109,16,216,190,255,148,217,190,249,24,219,190,89,156,220,190,29,31,222,190,70,161,223,190,211,34,225,190,193,163,226,190,16,36,228,190,190,163,229,190,204,34,231,190,56,161,232,190,0,31,234,190,36,156,235,190,162,24,237,190,122,148,238,190,171,15,240,190,51,138,241,190,18,4,243,190,70,125,244,190,207,245,245,190,170,109,247,190,217,228,248,190,88,91,250,190,40,209,251,190,71,70,253,190,181,186,254,190,56,23,0,191,187,208,0,191,228,137,1,191,178,66,2,191,37,251,2,191,59,179,3,191,246,106,4,191,83,34,5,191,83,217,5,191,245,143,6,191,56,70,7,191,29,252,7,191,162,177,8,191,199,102,9,191,140,27,10,191,240,207,10,191,243,131,11,191,147,55,12,191,209,234,12,191,172,157,13,191,36,80,14,191,56,2,15,191,232,179,15,191,50,101,16,191,24,22,17,191,151,198,17,191,176,118,18,191,99,38,19,191,174,213,19,191,145,132,20,191,13,51,21,191,31,225,21,191,200,142,22,191,8,60,23,191,221,232,23,191,72,149,24,191,72,65,25,191,220,236,25,191,4,152,26,191,192,66,27,191,15,237,27,191,240,150,28,191,99,64,29,191,104,233,29,191,254,145,30,191,37,58,31,191,220,225,31,191,35,137,32,191,250,47,33,191,95,214,33,191,82,124,34,191,212,33,35,191,227,198,35,191,127,107,36,191,167,15,37,191,92,179,37,191,157,86,38,191,104,249,38,191,191,155,39,191,160,61,40,191,11,223,40,191,255,127,41,191,125,32,42,191,131,192,42,191,17,96,43,191,39,255,43,191,196,157,44,191,232,59,45,191,146,217,45,191,195,118,46,191,121,19,47,191,180,175,47,191,115,75,48,191,183,230,48,191,127,129,49,191,203,27,50,191,153,181,50,191,234,78,51,191,189,231,51,191,18,128,52,191,232,23,53,191,63,175,53,191,22,70,54,191,110,220,54,191,69,114,55,191,156,7,56,191,113,156,56,191,197,48,57,191,150,196,57,191,230,87,58,191,178,234,58,191,252,124,59,191,194,14,60,191,3,160,60,191,193,48,61,191,250,192,61,191,173,80,62,191,219,223,62,191,131,110,63,191,165,252,63,191,64,138,64,191,83,23,65,191,224,163,65,191,228,47,66,191,96,187,66,191,83,70,67,191,190,208,67,191,158,90,68,191,246,227,68,191,194,108,69,191,5,245,69,191,188,124,70,191,232,3,71,191,137,138,71,191,157,16,72,191,37,150,72,191,32,27,73,191,142,159,73,191,111,35,74,191,193,166,74,191,134,41,75,191,188,171,75,191,99,45,76,191,122,174,76,191,2,47,77,191,250,174,77,191,98,46,78,191,57,173,78,191,126,43,79,191,51,169,79,191,85,38,80,191,230,162,80,191,228,30,81,191,80,154,81,191,40,21,82,191,109,143,82,191,30,9,83,191,59,130,83,191,195,250,83,191,183,114,84,191,22,234,84,191,223,96,85,191,18,215,85,191,176,76,86,191,183,193,86,191,39,54,87,191,0,170,87,191,66,29,88,191,236,143,88,191,254,1,89,191,120,115,89,191,89,228,89,191,162,84,90,191,81,196,90,191,102,51,91,191,226,161,91,191,195,15,92,191,10,125,92,191,183,233,92,191,200,85,93,191,62,193,93,191,24,44,94,191,87,150,94,191,249,255,94,191,255,104,95,191,104,209,95,191,51,57,96,191,98,160,96,191,243,6,97,191,229,108,97,191,58,210,97,191,240,54,98,191,8,155,98,191,128,254,98,191,89,97,99,191,146,195,99,191,44,37,100,191,37,134,100,191,126,230,100,191,55,70,101,191,78,165,101,191,197,3,102,191,154,97,102,191,205,190,102,191,94,27,103,191,77,119,103,191,154,210,103,191,68,45,104,191,75,135,104,191,174,224,104,191,111,57,105,191,139,145,105,191,4,233,105,191,217,63,106,191,9,150,106,191,148,235,106,191,123,64,107,191,188,148,107,191,89,232,107,191,79,59,108,191,160,141,108,191,75,223,108,191,79,48,109,191,173,128,109,191,101,208,109,191,117,31,110,191,223,109,110,191,161,187,110,191,187,8,111,191,46,85,111,191,248,160,111,191,27,236,111,191,149,54,112,191,103,128,112,191,144,201,112,191,15,18,113,191,230,89,113,191,19,161,113,191,151,231,113,191,113,45,114,191,160,114,114,191,38,183,114,191,1,251,114,191,50,62,115,191,184,128,115,191,148,194,115,191,196,3,116,191,73,68,116,191,34,132,116,191,80,195,116,191,210,1,117,191,168,63,117,191,210,124,117,191,80,185,117,191,33,245,117,191,69,48,118,191,189,106,118,191,136,164,118,191,166,221,118,191,22,22,119,191,217,77,119,191,239,132,119,191,87,187,119,191,17,241,119,191,29,38,120,191,122,90,120,191,42,142,120,191,43,193,120,191,125,243,120,191,33,37,121,191,22,86,121,191,92,134,121,191,242,181,121,191,218,228,121,191,18,19,122,191,154,64,122,191,115,109,122,191,157,153,122,191,22,197,122,191,223,239,122,191,248,25,123,191,97,67,123,191,26,108,123,191,34,148,123,191,122,187,123,191,32,226,123,191,23,8,124,191,92,45,124,191,240,81,124,191,211,117,124,191,5,153,124,191,134,187,124,191,85,221,124,191,115,254,124,191,223,30,125,191,154,62,125,191,163,93,125,191,250,123,125,191,159,153,125,191,146,182,125,191,211,210,125,191,98,238,125,191,63,9,126,191,105,35,126,191,225,60,126,191,167,85,126,191,186,109,126,191,27,133,126,191,201,155,126,191,196,177,126,191,13,199,126,191,162,219,126,191,133,239,126,191,181,2,127,191,50,21,127,191,252,38,127,191,19,56,127,191,118,72,127,191,39,88,127,191,36,103,127,191,110,117,127,191,5,131,127,191,232,143,127,191,25,156,127,191,149,167,127,191,95,178,127,191,116,188,127,191,215,197,127,191,133,206,127,191,129,214,127,191,200,221,127,191,93,228,127,191,61,234,127,191,106,239,127,191,227,243,127,191,169,247,127,191,187,250,127,191,25,253,127,191,196,254,127,191,187,255,127,191,250,255,127,63,57,254,127,63,169,249,127,63,75,242,127,63,30,232,127,63,35,219,127,63,89,203,127,63,193,184,127,63,91,163,127,63,40,139,127,63,39,112,127,63,90,82,127,63],"i8",ALLOC_NONE,Runtime.GLOBAL_BASE);allocate([191,49,127,63,88,14,127,63,37,232,126,63,38,191,126,63,92,147,126,63,200,100,126,63,105,51,126,63,65,255,125,63,79,200,125,63,150,142,125,63,20,82,125,63,203,18,125,63,188,208,124,63,231,139,124,63,77,68,124,63,239,249,123,63,205,172,123,63,233,92,123,63,67,10,123,63,221,180,122,63,182,92,122,63,209,1,122,63,46,164,121,63,206,67,121,63,178,224,120,63,220,122,120,63,76,18,120,63,4,167,119,63,4,57,119,63,79,200,118,63,228,84,118,63,198,222,117,63,246,101,117,63,117,234,116,63,68,108,116,63,101,235,115,63,218,103,115,63,163,225,114,63,194,88,114,63,57,205,113,63,9,63,113,63,52,174,112,63,187,26,112,63,160,132,111,63,228,235,110,63,138,80,110,63,147,178,109,63,1,18,109,63,213,110,108,63,17,201,107,63,183,32,107,63,201,117,106,63,73,200,105,63,57,24,105,63,155,101,104,63,111,176,103,63,186,248,102,63,124,62,102,63,184,129,101,63,111,194,100,63,164,0,100,63,90,60,99,63,145,117,98,63,76,172,97,63,142,224,96,63,89,18,96,63,174,65,95,63,145,110,94,63,3,153,93,63,8,193,92,63,160,230,91,63,207,9,91,63,152,42,90,63,251,72,89,63,253,100,88,63,159,126,87,63,229,149,86,63,208,170,85,63,99,189,84,63,161,205,83,63,140,219,82,63,39,231,81,63,117,240,80,63,121,247,79,63,52,252,78,63,171,254,77,63,223,254,76,63,212,252,75,63,140,248,74,63,10,242,73,63,82,233,72,63,101,222,71,63,71,209,70,63,251,193,69,63,132,176,68,63,229,156,67,63,32,135,66,63,58,111,65,63,52,85,64,63,19,57,63,63,216,26,62,63,136,250,60,63,38,216,59,63,180,179,58,63,54,141,57,63,175,100,56,63,34,58,55,63,147,13,54,63,5,223,52,63,124,174,51,63,249,123,50,63,130,71,49,63,25,17,48,63,194,216,46,63,127,158,45,63,86,98,44,63,72,36,43,63,90,228,41,63,144,162,40,63,235,94,39,63,113,25,38,63,37,210,36,63,9,137,35,63,35,62,34,63,117,241,32,63,4,163,31,63,210,82,30,63,228,0,29,63,61,173,27,63,225,87,26,63,211,0,25,63,25,168,23,63,180,77,22,63,170,241,20,63,253,147,19,63,178,52,18,63,204,211,16,63,80,113,15,63,66,13,14,63,164,167,12,63,124,64,11,63,205,215,9,63,154,109,8,63,233,1,7,63,189,148,5,63,25,38,4,63,3,182,2,63,126,68,1,63,28,163,255,62,110,186,252,62,250,206,249,62,202,224,246,62,228,239,243,62,81,252,240,62,26,6,238,62,71,13,235,62,224,17,232,62,237,19,229,62,119,19,226,62,135,16,223,62,36,11,220,62,88,3,217,62,42,249,213,62,164,236,210,62,205,221,207,62,175,204,204,62,82,185,201,62,191,163,198,62,254,139,195,62,24,114,192,62,22,86,189,62,0,56,186,62,224,23,183,62,189,245,179,62,161,209,176,62,149,171,173,62,162,131,170,62,207,89,167,62,39,46,164,62,178,0,161,62,121,209,157,62,133,160,154,62,223,109,151,62,143,57,148,62,160,3,145,62,26,204,141,62,5,147,138,62,107,88,135,62,86,28,132,62,205,222,128,62,182,63,123,62,16,191,116,62,187,59,110,62,201,181,103,62,77,45,97,62,89,162,90,62,255,20,84,62,81,133,77,62,99,243,70,62,70,95,64,62,13,201,57,62,202,48,51,62,144,150,44,62,114,250,37,62,130,92,31,62,210,188,24,62,118,27,18,62,127,120,11,62,1,212,4,62,29,92,252,61,114,13,239,61,41,188,225,61,102,104,212,61,78,18,199,61,8,186,185,61,184,95,172,61,132,3,159,61,146,165,145,61,7,70,132,61,18,202,109,61,122,5,83,61,145,62,56,61,164,117,29,61,252,170,2,61,202,189,207,60,86,35,154,60,97,14,73,60,197,167,187,59,61,122,86,186,9,70,241,187,18,221,99,188,80,138,167,188,65,36,221,188,227,93,9,189,35,40,36,189,150,240,62,189,242,182,89,189,234,122,116,189,26,158,135,189,66,253,148,189,200,90,162,189,134,182,175,189,87,16,189,189,22,104,202,189,155,189,215,189,195,16,229,189,105,97,242,189,101,175,255,189,74,125,6,190,104,33,13,190,250,195,19,190,237,100,26,190,46,4,33,190,172,161,39,190,83,61,46,190,16,215,52,190,210,110,59,190,134,4,66,190,25,152,72,190,121,41,79,190,148,184,85,190,86,69,92,190,174,207,98,190,137,87,105,190,214,220,111,190,128,95,118,190,120,223,124,190,84,174,129,190,129,235,132,190,56,39,136,190,114,97,139,190,36,154,142,190,69,209,145,190,205,6,149,190,179,58,152,190,238,108,155,190,116,157,158,190,61,204,161,190,64,249,164,190,115,36,168,190,207,77,171,190,73,117,174,190,218,154,177,190,120,190,180,190,27,224,183,190,186,255,186,190,75,29,190,190,199,56,193,190,37,82,196,190,91,105,199,190,97,126,202,190,48,145,205,190,188,161,208,190,0,176,211,190,241,187,214,190,135,197,217,190,186,204,220,190,129,209,223,190,211,211,226,190,169,211,229,190,250,208,232,190,189,203,235,190,234,195,238,190,120,185,241,190,96,172,244,190,154,156,247,190,28,138,250,190,223,116,253,190,109,46,0,191,3,161,1,191,45,18,3,191,230,129,4,191,44,240,5,191,250,92,7,191,76,200,8,191,30,50,10,191,108,154,11,191,50,1,13,191,108,102,14,191,23,202,15,191,45,44,17,191,172,140,18,191,144,235,19,191,213,72,21,191,118,164,22,191,113,254,23,191,192,86,25,191,98,173,26,191,81,2,28,191,138,85,29,191,9,167,30,191,203,246,31,191,204,68,33,191,9,145,34,191,124,219,35,191,36,36,37,191,253,106,38,191,2,176,39,191,48,243,40,191,132,52,42,191,250,115,43,191,143,177,44,191,63,237,45,191,7,39,47,191,227,94,48,191,208,148,49,191,202,200,50,191,206,250,51,191,218,42,53,191,232,88,54,191,247,132,55,191,2,175,56,191,7,215,57,191,3,253,58,191,241,32,60,191,207,66,61,191,154,98,62,191,79,128,63,191,233,155,64,191,104,181,65,191,198,204,66,191,1,226,67,191,23,245,68,191,3,6,70,191,196,20,71,191,86,33,72,191,182,43,73,191,225,51,74,191,212,57,75,191,141,61,76,191,9,63,77,191,68,62,78,191,61,59,79,191,240,53,80,191,90,46,81,191,121,36,82,191,74,24,83,191,202,9,84,191,247,248,84,191,206,229,85,191,77,208,86,191,112,184,87,191,55,158,88,191,156,129,89,191,160,98,90,191,62,65,91,191,117,29,92,191,65,247,92,191,162,206,93,191,148,163,94,191,20,118,95,191,34,70,96,191,186,19,97,191,217,222,97,191,127,167,98,191,169,109,99,191,84,49,100,191,126,242,100,191,38,177,101,191,73,109,102,191,229,38,103,191,248,221,103,191,128,146,104,191,123,68,105,191,232,243,105,191,195,160,106,191,12,75,107,191,192,242,107,191,222,151,108,191,100,58,109,191,80,218,109,191,160,119,110,191,83,18,111,191,102,170,111,191,217,63,112,191,169,210,112,191,213,98,113,191,91,240,113,191,58,123,114,191,113,3,115,191,253,136,115,191,222,11,116,191,17,140,116,191,150,9,117,191,107,132,117,191,143,252,117,191,0,114,118,191,189,228,118,191,198,84,119,191,24,194,119,191,178,44,120,191,147,148,120,191,187,249,120,191,40,92,121,191,217,187,121,191,205,24,122,191,2,115,122,191,121,202,122,191,47,31,123,191,36,113,123,191,88,192,123,191,201,12,124,191,118,86,124,191,95,157,124,191,130,225,124,191,224,34,125,191,119,97,125,191,71,157,125,191,79,214,125,191,142,12,126,191,4,64,126,191,176,112,126,191,146,158,126,191,169,201,126,191,245,241,126,191,117,23,127,191,41,58,127,191,16,90,127,191,43,119,127,191,120,145,127,191,248,168,127,191,170,189,127,191,143,207,127,191,165,222,127,191,237,234,127,191,102,244,127,191,17,251,127,191,237,254,127,191,234,255,127,63,229,248,127,63,166,230,127,63,45,201,127,63,124,160,127,63,149,108,127,63,121,45,127,63,44,227,126,63,177,141,126,63,11,45,126,63,63,193,125,63,82,74,125,63,72,200,124,63,40,59,124,63,247,162,123,63,189,255,122,63,128,81,122,63,72,152,121,63,30,212,120,63,9,5,120,63,19,43,119,63,70,70,118,63,172,86,117,63,78,92,116,63,56,87,115,63,118,71,114,63,19,45,113,63,28,8,112,63,158,216,110,63,165,158,109,63,64,90,108,63,126,11,107,63,107,178,105,63,25,79,104,63,150,225,102,63,242,105,101,63,62,232,99,63,139,92,98,63,234,198,96,63,109,39,95,63,38,126,93,63,40,203,91,63,133,14,90,63,83,72,88,63,163,120,86,63,139,159,84,63,32,189,82,63,118,209,80,63,163,220,78,63,189,222,76,63,219,215,74,63,19,200,72,63,124,175,70,63,46,142,68,63,65,100,66,63,206,49,64,63,236,246,61,63,180,179,59,63,66,104,57,63,173,20,55,63,16,185,52,63,134,85,50,63,41,234,47,63,21,119,45,63,101,252,42,63,53,122,40,63,161,240,37,63,198,95,35,63,192,199,32,63,172,40,30,63,169,130,27,63,212,213,24,63,74,34,22,63,42,104,19,63,147,167,16,63,164,224,13,63,123,19,11,63,57,64,8,63,253,102,5,63,231,135,2,63,45,70,255,62,91,113,249,62,151,145,243,62,36,167,237,62,69,178,231,62,60,179,225,62,76,170,219,62,186,151,213,62,201,123,207,62,190,86,201,62,223,40,195,62,112,242,188,62,183,179,182,62,251,108,176,62,129,30,170,62,146,200,163,62,115,107,157,62,108,7,151,62,197,156,144,62,199,43,138,62,185,180,131,62,199,111,122,62,33,107,109,62,17,92,96,62,41,67,83,62,253,32,70,62,32,246,56,62,38,195,43,62,164,136,30,62,45,71,17,62,87,255,3,62,110,99,237,61,194,189,210,61,218,14,184,61,222,87,157,61,251,153,130,61,188,172,79,61,101,28,26,61,153,10,201,60,42,167,59,60,193,120,214,186,45,68,113,188,87,215,227,188,76,129,39,189,148,15,93,189,21,74,137,189,90,6,164,189,109,187,190,189,34,104,217,189,78,11,244,189,227,81,7,190,47,152,20,190,247,215,33,190,165,16,47,190,166,65,60,190,100,106,73,190,77,138,86,190,205,160,99,190,80,173,112,190,69,175,125,190,13,83,133,190,158,200,139,190,13,56,146,190,18,161,152,190,102,3,159,190,191,94,165,190,216,178,171,190,105,255,177,190,43,68,184,190,216,128,190,190,42,181,196,190,219,224,202,190,165,3,209,190,69,29,215,190,117,45,221,190,241,51,227,190,118,48,233,190,192,34,239,190,141,10,245,190,155,231,250,190,211,92,0,191,56,64,3,191,219,29,6,191,155,245,8,191,90,199,11,191,247,146,14,191,84,88,17,191,80,23,20,191,205,207,22,191,172,129,25,191,208,44,28,191,26,209,30,191,109,110,33,191,171,4,36,191,183,147,38,191,116,27,41,191,199,155,43,191,147,20,46,191,187,133,48,191,38,239,50,191,183,80,53,191,85,170,55,191,227,251,57,191,74,69,60,191,110,134,62,191,55,191,64,191,139,239,66,191,83,23,69,191,117,54,71,191,218,76,73,191,107,90,75,191,16,95,77,191,179,90,79,191,62,77,81,191,154,54,83,191,179,22,85,191,114,237,86,191,197,186,88,191,149,126,90,191,208,56,92,191,98,233,93,191,56,144,95,191,64,45,97,191,103,192,98,191,156,73,100,191,206,200,101,191,235,61,103,191,227,168,104,191,167,9,106,191,39,96,107,191,84,172,108,191,31,238,109,191,122,37,111,191,88,82,112,191,171,116,113,191,103,140,114,191,127,153,115,191,231,155,116,191,149,147,117,191,126,128,118,191,150,98,119,191,212,57,120,191,47,6,121,191,158,199,121,191,23,126,122,191,148,41,123,191,13,202,123,191,122,95,124,191,213,233,124,191,24,105,125,191,62,221,125,191,64,70,126,191,28,164,126,191,204,246,126,191,77,62,127,191,156,122,127,191,182,171,127,191,153,209,127,191,67,236,127,191,180,251,127,191,166,255,127,63,148,227,127,63,156,154,127,63,204,36,127,63,56,130,126,63,253,178,125,63,63,183,124,63,42,143,123,63,243,58,122,63,212,186,120,63,17,15,119,63,246,55,117,63,213,53,115,63,8,9,113,63,241,177,110,63,249,48,108,63,144,134,105,63,47,179,102,63,83,183,99,63,132,147,96,63,78,72,93,63,69,214,89,63,3,62,86,63,43,128,82,63,101,157,78,63,94,150,74,63,204,107,70,63,106,30,66,63,249,174,61,63,64,30,57,63,13,109,52,63,50,156,47,63,135,172,42,63,235,158,37,63,63,116,32,63,109,45,27,63,97,203,21,63,13,79,16,63,104,185,10,63,107,11,5,63,46,140,254,62,221,212,242,62,241,242,230,62,127,232,218,62,166,183,206,62,136,98,194,62,78,235,181,62,42,84,169,62,81,159,156,62,253,206,143,62,109,229,130,62,206,201,107,62,98,159,81,62,48,80,55,62,211,224,28,62,241,85,2,62,98,104,207,61,124,0,154,61,36,251,72,61,27,164,187,60,243,119,86,187,100,61,241,188,187,192,99,189,103,93,167,189,20,189,220,189,3,251,8,190,115,127,35,190,52,231,61,190,164,45,88,190,38,78,114,190,18,34,134,190,137,5,147,190,52,207,159,190,213,124,172,190,51,12,185,190,26,123,197,190,91,199,209,190,205,238,221,190,80,239,233,190,199,198,245,190,144,185,0,191,38,121,6,191,36,33,12,191,141,176,17,191,102,38,23,191,186,129,28,191,152,193,33,191,21,229,38,191,74,235,43,191,86,211,48,191,91,156,53,191,131,69,58,191,253,205,62,191,252,52,67,191,188,121,71,191,125,155,75,191,132,153,79,191,31,115,83,191,161,39,87,191,99,182,90,191,198,30,94,191,48,96,97,191,15,122,100,191,216,107,103,191,7,53,106,191,31,213,108,191,169,75,111,191,55,152,113,191,98,186,115,191,201,177,117,191,22,126,119,191,246,30,121,191,33,148,122,191,85,221,123,191,89,250,124,191,250,234,125,191,14,175,126,191,116,70,127,191,15,177,127,191,206,238,127,191,0,0,128,63,0,0,0,128,99,250,127,63,191,117,86,188,139,233,127,63,10,113,214,188,121,205,127,63,231,206,32,189,47,166,127,63,58,94,86,189,175,115,127,63,19,242,133,189,249,53,127,63,42,175,160,189,18,237,126,63,51,101,187,189,253,152,126,63,4,19,214,189,188,57,126,63,115,183,240,189,85,207,125,63,168,168,5,190,203,89,125,63,187,239,18,190,37,217,124,63,92,48,32,190,103,77,124,63,245,105,45,190,152,182,123,63,243,155,58,190,190,20,123,63,194,197,71,190,226,103,122,63,205,230,84,190,9,176,121,63,130,254,97,190,60,237,120,63,77,12,111,190,132,31,120,63,156,15,124,190,234,70,119,63,238,131,132,190,119,99,118,63,62,250,138,190,54,117,117,63,117,106,145,190,48,124,116,63,76,212,151,190,113,120,115,63,122,55,158,190,3,106,114,63,183,147,164,190,244,80,113,63,188,232,170,190,79,45,112,63,65,54,177,190,33,255,110,63,1,124,183,190,118,198,109,63,180,185,189,190,94,131,108,63,21,239,195,190,231,53,107,63,222,27,202,190,30,222,105,63,201,63,208,190,18,124,104,63,146,90,214,190,212,15,103,63,243,107,220,190,116,153,101,63,170,115,226,190,1,25,100,63,113,113,232,190,141,142,98,63,7,101,238,190,40,250,96,63,39,78,244,190,230,91,95,63,144,44,250,190,215,179,93,63,0,0,0,191,15,2,92,63,27,228,2,191,160,70,90,63,119,194,5,191,158,129,88,63,246,154,8,191,29,179,86,63,119,109,11,191,49,219,84,63,218,57,14,191,239,249,82,63,0,0,17,191,108,15,81,63,202,191,19,191,189,27,79,63,24,121,22,191,248,30,77,63,205,43,25,191,52,25,75,63,202,215,27,191,136,10,73,63,241,124,30,191,10,243,70,63,36,27,33,191,209,210,68,63,70,178,35,191,247,169,66,63,58,66,38,191,147,120,64,63,227,202,40,191,189,62,62,63,37,76,43,191,143,252,59,63,227,197,45,191,34,178,57,63,1,56,48,191,144,95,55,63,101,162,50,191,243,4,53,63,243,4,53,191,101,162,50,63,144,95,55,191,1,56,48,63,34,178,57,191,227,197,45,63,143,252,59,191,37,76,43,63,189,62,62,191,227,202,40,63,147,120,64,191,58,66,38,63,247,169,66,191,70,178,35,63,209,210,68,191,36,27,33,63,10,243,70,191,241,124,30,63,136,10,73,191,202,215,27,63,52,25,75,191,205,43,25,63,248,30,77,191,24,121,22,63,189,27,79,191,202,191,19,63,108,15,81,191,0,0,17,63,239,249,82,191,218,57,14,63,49,219,84,191,119,109,11,63,29,179,86,191,246,154,8,63,158,129,88,191,119,194,5,63,160,70,90,191,27,228,2,63,15,2,92,191,0,0,0,63,215,179,93,191,144,44,250,62,230,91,95,191,39,78,244,62,40,250,96,191,7,101,238,62,141,142,98,191,113,113,232,62,1,25,100,191,170,115,226,62,116,153,101,191,243,107,220,62,212,15,103,191,146,90,214,62,18,124,104,191,201,63,208,62,30,222,105,191,222,27,202,62,231,53,107,191,21,239,195,62,94,131,108,191,180,185,189,62,118,198,109,191,1,124,183,62,33,255,110,191,65,54,177,62,79,45,112,191,188,232,170,62,244,80,113,191,183,147,164,62,3,106,114,191,122,55,158,62,113,120,115,191,76,212,151,62,48,124,116,191,117,106,145,62,54,117,117,191,62,250,138,62,119,99,118,191,238,131,132,62,234,70,119,191,156,15,124,62,132,31,120,191,77,12,111,62,60,237,120,191,130,254,97,62,9,176,121,191,205,230,84,62,226,103,122,191,194,197,71,62,190,20,123,191,243,155,58,62,152,182,123,191,245,105,45,62,103,77,124,191,92,48,32,62,37,217,124,191,187,239,18,62,203,89,125,191,168,168,5,62,85,207,125,191,115,183,240,61,188,57,126,191,4,19,214,61,253,152,126,191,51,101,187,61,18,237,126,191,42,175,160,61,249,53,127,191,19,242,133,61,175,115,127,191,58,94,86,61,47,166,127,191,231,206,32,61,121,205,127,191,10,113,214,60,139,233,127,191,191,117,86,60,99,250,127,191,0,48,141,36,0,0,128,191,191,117,86,188,99,250,127,191,10,113,214,188,139,233,127,191,231,206,32,189,121,205,127,191,58,94,86,189,47,166,127,191,19,242,133,189,175,115,127,191,42,175,160,189,249,53,127,191,51,101,187,189,18,237,126,191,4,19,214,189,253,152,126,191,115,183,240,189,188,57,126,191,168,168,5,190,85,207,125,191,187,239,18,190,203,89,125,191,92,48,32,190,37,217,124,191,245,105,45,190,103,77,124,191,243,155,58,190,152,182,123,191,194,197,71,190,190,20,123,191,205,230,84,190,226,103,122,191,130,254,97,190,9,176,121,191,77,12,111,190,60,237,120,191,156,15,124,190,132,31,120,191,238,131,132,190,234,70,119,191,62,250,138,190,119,99,118,191,117,106,145,190,54,117,117,191,76,212,151,190,48,124,116,191,122,55,158,190,113,120,115,191,183,147,164,190,3,106,114,191,188,232,170,190,244,80,113,191,65,54,177,190,79,45,112,191,1,124,183,190,33,255,110,191,180,185,189,190,118,198,109,191,21,239,195,190,94,131,108,191,222,27,202,190,231,53,107,191,201,63,208,190,30,222,105,191,146,90,214,190,18,124,104,191,243,107,220,190,212,15,103,191,170,115,226,190,116,153,101,191,113,113,232,190,1,25,100,191,7,101,238,190,141,142,98,191,39,78,244,190,40,250,96,191,144,44,250,190,230,91,95,191,0,0,0,191,215,179,93,191,27,228,2,191,15,2,92,191,119,194,5,191,160,70,90,191,246,154,8,191,158,129,88,191,119,109,11,191,29,179,86,191,218,57,14,191,49,219,84,191,0,0,17,191,239,249,82,191,202,191,19,191,108,15,81,191,24,121,22,191,189,27,79,191,205,43,25,191,248,30,77,191,202,215,27,191,52,25,75,191,241,124,30,191,136,10,73,191,36,27,33,191,10,243,70,191,70,178,35,191,209,210,68,191,58,66,38,191,247,169,66,191,227,202,40,191,147,120,64,191,37,76,43,191,189,62,62,191,227,197,45,191,143,252,59,191,1,56,48,191,34,178,57,191,101,162,50,191,144,95,55,191,243,4,53,191,243,4,53,191,144,95,55,191,101,162,50,191,34,178,57,191,1,56,48,191,143,252,59,191,227,197,45,191,189,62,62,191,37,76,43,191,147,120,64,191,227,202,40,191,247,169,66,191,58,66,38,191,209,210,68,191,70,178,35,191,10,243,70,191,36,27,33,191,136,10,73,191,241,124,30,191,52,25,75,191,202,215,27,191,248,30,77,191,205,43,25,191,189,27,79,191,24,121,22,191,108,15,81,191,202,191,19,191,239,249,82,191,0,0,17,191,49,219,84,191,218,57,14,191,29,179,86,191,119,109,11,191,158,129,88,191,246,154,8,191,160,70,90,191,119,194,5,191,15,2,92,191,27,228,2,191,215,179,93,191,0,0,0,191,230,91,95,191,144,44,250,190,40,250,96,191,39,78,244,190,141,142,98,191,7,101,238,190,1,25,100,191,113,113,232,190,116,153,101,191,170,115,226,190,212,15,103,191,243,107,220,190,18,124,104,191,146,90,214,190,30,222,105,191,201,63,208,190,231,53,107,191,222,27,202,190,94,131,108,191,21,239,195,190,118,198,109,191,180,185,189,190,33,255,110,191,1,124,183,190,79,45,112,191,65,54,177,190,244,80,113,191,188,232,170,190,3,106,114,191,183,147,164,190,113,120,115,191,122,55,158,190,48,124,116,191,76,212,151,190,54,117,117,191,117,106,145,190,119,99,118,191,62,250,138,190,234,70,119,191,238,131,132,190,132,31,120,191,156,15,124,190,60,237,120,191,77,12,111,190,9,176,121,191,130,254,97,190,226,103,122,191,205,230,84,190,190,20,123,191,194,197,71,190,152,182,123,191,243,155,58,190,103,77,124,191,245,105,45,190,37,217,124,191,92,48,32,190,203,89,125,191,187,239,18,190,85,207,125,191,168,168,5,190,188,57,126,191,115,183,240,189,253,152,126,191,4,19,214,189,18,237,126,191,51,101,187,189,249,53,127,191,42,175,160,189,175,115,127,191,19,242,133,189,47,166,127,191,58,94,86,189,121,205,127,191,231,206,32,189,139,233,127,191,10,113,214,188,99,250,127,191,191,117,86,188,0,0,128,191,0,48,13,165,99,250,127,191,191,117,86,60,139,233,127,191,10,113,214,60,121,205,127,191,231,206,32,61,47,166,127,191,58,94,86,61,175,115,127,191,19,242,133,61,249,53,127,191,42,175,160,61,18,237,126,191,51,101,187,61,253,152,126,191,4,19,214,61,188,57,126,191,115,183,240,61,85,207,125,191,168,168,5,62,203,89,125,191,187,239,18,62,37,217,124,191,92,48,32,62,103,77,124,191,245,105,45,62,152,182,123,191,243,155,58,62,190,20,123,191,194,197,71,62,226,103,122,191,205,230,84,62,9,176,121,191,130,254,97,62,60,237,120,191,77,12,111,62,132,31,120,191,156,15,124,62,234,70,119,191,238,131,132,62,119,99,118,191,62,250,138,62,54,117,117,191,117,106,145,62,48,124,116,191,76,212,151,62,113,120,115,191,122,55,158,62,3,106,114,191,183,147,164,62,244,80,113,191,188,232,170,62,79,45,112,191,65,54,177,62,33,255,110,191,1,124,183,62,118,198,109,191,180,185,189,62,94,131,108,191,21,239,195,62,231,53,107,191,222,27,202,62,30,222,105,191,201,63,208,62,18,124,104,191,146,90,214,62,212,15,103,191,243,107,220,62,116,153,101,191,170,115,226,62,1,25,100,191,113,113,232,62,141,142,98,191,7,101,238,62,40,250,96,191,39,78,244,62,230,91,95,191,144,44,250,62,215,179,93,191,0,0,0,63,15,2,92,191,27,228,2,63,160,70,90,191,119,194,5,63,158,129,88,191,246,154,8,63,29,179,86,191,119,109,11,63,49,219,84,191,218,57,14,63,239,249,82,191,0,0,17,63,108,15,81,191,202,191,19,63,189,27,79,191,24,121,22,63,248,30,77,191,205,43,25,63,52,25,75,191,202,215,27,63,136,10,73,191,241,124,30,63,10,243,70,191,36,27,33,63,209,210,68,191,70,178,35,63,247,169,66,191,58,66,38,63,147,120,64,191,227,202,40,63,189,62,62,191,37,76,43,63,143,252,59,191,227,197,45,63,34,178,57,191,1,56,48,63,144,95,55,191,101,162,50,63,243,4,53,191,243,4,53,63,101,162,50,191,144,95,55,63,1,56,48,191,34,178,57,63,227,197,45,191,143,252,59,63,37,76,43,191,189,62,62,63,227,202,40,191,147,120,64,63,58,66,38,191,247,169,66,63,70,178,35,191,209,210,68,63,36,27,33,191,10,243,70,63,241,124,30,191,136,10,73,63,202,215,27,191,52,25,75,63,205,43,25,191,248,30,77,63,24,121,22,191,189,27,79,63,202,191,19,191,108,15,81,63,0,0,17,191,239,249,82,63,218,57,14,191,49,219,84,63,119,109,11,191,29,179,86,63,246,154,8,191,158,129,88,63,119,194,5,191,160,70,90,63,27,228,2,191,15,2,92,63,0,0,0,191,215,179,93,63,144,44,250,190,230,91,95,63,39,78,244,190,40,250,96,63,7,101,238,190,141,142,98,63,113,113,232,190,1,25,100,63,170,115,226,190,116,153,101,63,243,107,220,190,212,15,103,63,146,90,214,190,18,124,104,63,201,63,208,190,30,222,105,63,222,27,202,190,231,53,107,63,21,239,195,190,94,131,108,63,180,185,189,190,118,198,109,63,1,124,183,190,33,255,110,63,65,54,177,190,79,45,112,63,188,232,170,190,244,80,113,63,183,147,164,190,3,106,114,63,122,55,158,190,113,120,115,63,76,212,151,190,48,124,116,63,117,106,145,190,54,117,117,63,62,250,138,190,119,99,118,63,238,131,132,190,234,70,119,63,156,15,124,190,132,31,120,63,77,12,111,190,60,237,120,63,130,254,97,190,9,176,121,63,205,230,84,190,226,103,122,63,194,197,71,190,190,20,123,63,243,155,58,190,152,182,123,63,245,105,45,190,103,77,124,63,92,48,32,190,37,217,124,63,187,239,18,190,203,89,125,63,168,168,5,190,85,207,125,63,115,183,240,189,188,57,126,63,4,19,214,189,253,152,126,63,51,101,187,189,18,237,126,63,42,175,160,189,249,53,127,63,19,242,133,189,175,115,127,63,58,94,86,189,47,166,127,63,231,206,32,189,121,205,127,63,10,113,214,188,139,233,127,63,191,117,86,188,99,250,127,63,0,200,83,165,0,0,128,63,191,117,86,60,99,250,127,63,10,113,214,60,139,233,127,63,231,206,32,61,121,205,127,63,58,94,86,61,47,166,127,63,19,242,133,61,175,115,127,63,42,175,160,61,249,53,127,63,51,101,187,61,18,237,126,63,4,19,214,61,253,152,126,63,115,183,240,61,188,57,126,63,168,168,5,62,85,207,125,63,187,239,18,62,203,89,125,63,92,48,32,62,37,217,124,63,245,105,45,62,103,77,124,63,243,155,58,62,152,182,123,63,194,197,71,62,190,20,123,63,205,230,84,62,226,103,122,63,130,254,97,62,9,176,121,63,77,12,111,62,60,237,120,63,156,15,124,62,132,31,120,63,238,131,132,62,234,70,119,63,62,250,138,62,119,99,118,63,117,106,145,62,54,117,117,63,76,212,151,62,48,124,116,63,122,55,158,62,113,120,115,63,183,147,164,62,3,106,114,63,188,232,170,62,244,80,113,63,65,54,177,62,79,45,112,63,1,124,183,62,33,255,110,63,180,185,189,62,118,198,109,63,21,239,195,62,94,131,108,63,222,27,202,62,231,53,107,63,201,63,208,62,30,222,105,63,146,90,214,62,18,124,104,63,243,107,220,62,212,15,103,63,170,115,226,62,116,153,101,63,113,113,232,62,1,25,100,63,7,101,238,62,141,142,98,63,39,78,244,62,40,250,96,63,144,44,250,62,230,91,95,63,0,0,0,63,215,179,93,63,27,228,2,63,15,2,92,63,119,194,5,63,160,70,90,63,246,154,8,63,158,129,88,63,119,109,11,63,29,179,86,63,218,57,14,63,49,219,84,63,0,0,17,63,239,249,82,63,202,191,19,63,108,15,81,63,24,121,22,63,189,27,79,63,205,43,25,63,248,30,77,63,202,215,27,63,52,25,75,63,241,124,30,63,136,10,73,63,36,27,33,63,10,243,70,63,70,178,35,63,209,210,68,63,58,66,38,63,247,169,66,63,227,202,40,63,147,120,64,63,37,76,43,63,189,62,62,63,227,197,45,63,143,252,59,63,1,56,48,63,34,178,57,63,101,162,50,63,144,95,55,63,243,4,53,63,243,4,53,63,144,95,55,63,101,162,50,63,34,178,57,63,1,56,48,63,143,252,59,63,227,197,45,63,189,62,62,63,37,76,43,63,147,120,64,63,227,202,40,63,247,169,66,63,58,66,38,63,209,210,68,63,70,178,35,63,10,243,70,63,36,27,33,63,136,10,73,63,241,124,30,63,52,25,75,63,202,215,27,63,248,30,77,63,205,43,25,63,189,27,79,63,24,121,22,63,108,15,81,63,202,191,19,63,239,249,82,63,0,0,17,63,49,219,84,63,218,57,14,63,29,179,86,63,119,109,11,63,158,129,88,63,246,154,8,63,160,70,90,63,119,194,5,63,15,2,92,63,27,228,2,63,215,179,93,63,0,0,0,63,230,91,95,63,144,44,250,62,40,250,96,63,39,78,244,62,141,142,98,63,7,101,238,62,1,25,100,63,113,113,232,62,116,153,101,63,170,115,226,62,212,15,103,63,243,107,220,62,18,124,104,63,146,90,214,62,30,222,105,63,201,63,208,62,231,53,107,63,222,27,202,62,94,131,108,63,21,239,195,62,118,198,109,63,180,185,189,62,33,255,110,63,1,124,183,62,79,45,112,63,65,54,177,62,244,80,113,63,188,232,170,62,3,106,114,63,183,147,164,62,113,120,115,63,122,55,158,62,48,124,116,63,76,212,151,62,54,117,117,63,117,106,145,62,119,99,118,63,62,250,138,62,234,70,119,63,238,131,132,62,132,31,120,63,156,15,124,62,60,237,120,63,77,12,111,62,9,176,121,63,130,254,97,62,226,103,122,63,205,230,84,62,190,20,123,63,194,197,71,62,152,182,123,63,243,155,58,62,103,77,124,63,245,105,45,62,37,217,124,63,92,48,32,62,203,89,125,63,187,239,18,62,85,207,125,63,168,168,5,62,188,57,126,63,115,183,240,61,253,152,126,63,4,19,214,61,18,237,126,63,51,101,187,61,249,53,127,63,42,175,160,61,175,115,127,63,19,242,133,61,47,166,127,63,58,94,86,61,121,205,127,63,231,206,32,61,139,233,127,63,10,113,214,60,99,250,127,63,191,117,86,60,0,0,102,63,0,0,76,63,0,0,38,63,0,0,0,63,0,134,107,63,0,20,46,63,0,112,189,62,0,208,76,62,6,0,0,0,4,0,0,0,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,200,98,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,250,0,3,0,6,0,3,0,3,0,3,0,4,0,3,0,3,0,3,0,205,1,100,0,3,0,40,0,3,0,3,0,3,0,5,0,14,0,14,0,10,0,11,0,3,0,8,0,9,0,7,0,3,0,91,1,92,202,190,216,182,223,154,226,156,230,120,236,122,244,204,252,52,3,134,11,136,19,100,25,102,29,74,32,66,39,164,53,100,0,240,0,32,0,100,0,205,60,0,48,0,32,0,32,254,31,246,31,234,31,216,31,194,31,168,31,136,31,98,31,58,31,10,31,216,30,160,30,98,30,34,30,220,29,144,29,66,29,238,28,150,28,58,28,216,27,114,27,10,27,156,26,42,26,180,25,58,25,188,24,60,24,182,23,46,23,160,22,16,22,126,21,232,20,78,20,176,19,16,19,110,18,200,17,30,17,116,16,198,15,22,15,100,14,174,13,248,12,64,12,132,11,200,10,10,10,74,9,138,8,198,7,2,7,62,6,120,5,178,4,234,3,34,3,90,2,146,1,202,0,0,0,54,255,110,254,166,253,222,252,22,252,78,251,136,250,194,249,254,248,58,248,118,247,182,246,246,245,56,245,124,244,192,243,8,243,82,242,156,241,234,240,58,240,140,239,226,238,56,238,146,237,240,236,80,236,178,235,24,235,130,234,240,233,96,233,210,232,74,232,196,231,68,231,198,230,76,230,214,229,100,229,246,228,142,228,40,228,198,227,106,227,18,227,190,226,112,226,36,226,222,225,158,225,96,225,40,225,246,224,198,224,158,224,120,224,88,224,62,224,40,224,22,224,10,224,2,224,0,224,42,175,213,201,207,255,64,0,17,0,99,255,97,1,16,254,163,0,39,43,189,86,217,255,6,0,91,0,86,255,186,0,23,0,128,252,192,24,216,77,237,255,220,255,102,0,167,255,232,255,72,1,73,252,8,10,37,62,135,199,61,201,64,0,128,0,134,255,36,0,54,1,0,253,72,2,51,36,69,69,12,0,128,0,18,0,114,255,32,1,139,255,159,252,27,16,123,56,104,2,13,200,246,255,39,0,58,0,210,255,172,255,120,0,184,0,197,254,227,253,4,5,4,21,64,35,230,62,198,196,243,255,0,0,20,0,26,0,5,0,225,255,213,255,252,255,65,0,90,0,7,0,99,255,8,255,212,255,81,2,47,6,52,10,199,12,228,87,5,197,3,0,242,255,236,255,241,255,2,0,25,0,37,0,25,0,240,255,185,255,149,255,177,255,50,0,36,1,111,2,214,3,8,5,184,5,148,107,103,196,17,0,12,0,8,0,1,0,246,255,234,255,226,255,224,255,234,255,3,0,44,0,100,0,168,0,243,0,61,1,125,1,173,1,199,1,189,0,168,253,105,2,103,119,117,0,97,255,210,251,8,116,52,0,221,0,168,246,116,110,252,255,17,2,234,242,229,102,208,255,246,2,140,240,165,93,176,255,137,3,117,239,6,83,157,255,204,3,130,239,102,71,149,255,199,3,139,240,39,59,153,255,128,3,97,242,174,46,165,255,5,3,207,244,94,34,185,255,99,2,161,247,152,22,210,255,169,1,161,250,180,11,0,64,202,69,27,76,255,82,130,90,179,98,162,107,96,117,0,0,1,0,2,0,3,0,4,0,5,0,6,0,7,0,8,0,10,0,12,0,14,0,16,0,20,0,24,0,28,0,34,0,40,0,48,0,60,0,78,0,100,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8,0,8,0,8,0,8,0,16,0,16,0,16,0,21,0,21,0,24,0,29,0,34,0,36,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,41,0,41,0,41,0,82,0,82,0,123,0,164,0,200,0,222,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,41,0,41,0,41,0,41,0,123,0,123,0,123,0,164,0,164,0,240,0,10,1,27,1,39,1,41,0,41,0,41,0,41,0,41,0,41,0,41,0,41,0,123,0,123,0,123,0,123,0,240,0,240,0,240,0,10,1,10,1,49,1,62,1,72,1,80,1,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,240,0,240,0,240,0,240,0,49,1,49,1,49,1,62,1,62,1,87,1,95,1,102,1,108,1,240,0,240,0,240,0,240,0,240,0,240,0,240,0,240,0,49,1,49,1,49,1,49,1,87,1,87,1,87,1,95,1,95,1,114,1,120,1,126,1,131,1,0,0,12,0,24,0,36,0,48,0,4,0,16,0,28,0,40,0,52,0,8,0,20,0,32,0,44,0,56,0,1,0,13,0,25,0,37,0,49,0,5,0,17,0,29,0,41,0,53,0,9,0,21,0,33,0,45,0,57,0,2,0,14,0,26,0,38,0,50,0,6,0,18,0,30,0,42,0,54,0,10,0,22,0,34,0,46,0,58,0,3,0,15,0,27,0,39,0,51,0,7,0,19,0,31,0,43,0,55,0,11,0,23,0,35,0,47,0,59,0,0,0,24,0,48,0,72,0,96,0,8,0,32,0,56,0,80,0,104,0,16,0,40,0,64,0,88,0,112,0,4,0,28,0,52,0,76,0,100,0,12,0,36,0,60,0,84,0,108,0,20,0,44,0,68,0,92,0,116,0,1,0,25,0,49,0,73,0,97,0,9,0,33,0,57,0,81,0,105,0,17,0,41,0,65,0,89,0,113,0,5,0,29,0,53,0,77,0,101,0,13,0,37,0,61,0,85,0,109,0,21,0,45,0,69,0,93,0,117,0,2,0,26,0,50,0,74,0,98,0,10,0,34,0,58,0,82,0,106,0,18,0,42,0,66,0,90,0,114,0,6,0,30,0,54,0,78,0,102,0,14,0,38,0,62,0,86,0,110,0,22,0,46,0,70,0,94,0,118,0,3,0,27,0,51,0,75,0,99,0,11,0,35,0,59,0,83,0,107,0,19,0,43,0,67,0,91,0,115,0,7,0,31,0,55,0,79,0,103,0,15,0,39,0,63,0,87,0,111,0,23,0,47,0,71,0,95,0,119,0,0,0,48,0,96,0,144,0,192,0,16,0,64,0,112,0,160,0,208,0,32,0,80,0,128,0,176,0,224,0,4,0,52,0,100,0,148,0,196,0,20,0,68,0,116,0,164,0,212,0,36,0,84,0,132,0,180,0,228,0,8,0,56,0,104,0,152,0,200,0,24,0,72,0,120,0,168,0,216,0,40,0,88,0,136,0,184,0,232,0,12,0,60,0,108,0,156,0,204,0,28,0,76,0,124,0,172,0,220,0,44,0,92,0,140,0,188,0,236,0,1,0,49,0,97,0,145,0,193,0,17,0,65,0,113,0,161,0,209,0,33,0,81,0,129,0,177,0,225,0,5,0,53,0,101,0,149,0,197,0,21,0,69,0,117,0,165,0,213,0,37,0,85,0,133,0,181,0,229,0,9,0,57,0,105,0,153,0,201,0,25,0,73,0,121,0,169,0,217,0,41,0,89,0,137,0,185,0,233,0,13,0,61,0,109,0,157,0,205,0,29,0,77,0,125,0,173,0,221,0,45,0,93,0,141,0,189,0,237,0,2,0,50,0,98,0,146,0,194,0,18,0,66,0,114,0,162,0,210,0,34,0,82,0,130,0,178,0,226,0,6,0,54,0,102,0,150,0,198,0,22,0,70,0,118,0,166,0,214,0,38,0,86,0,134,0,182,0,230,0,10,0,58,0,106,0,154,0,202,0,26,0,74,0,122,0,170,0,218,0,42,0,90,0,138,0,186,0,234,0,14,0,62,0,110,0,158,0,206,0,30,0,78,0,126,0,174,0,222,0,46,0,94,0,142,0,190,0,238,0,3,0,51,0,99,0,147,0,195,0,19,0,67,0,115,0,163,0,211,0,35,0,83,0,131,0,179,0,227,0,7,0,55,0,103,0,151,0,199,0,23,0,71,0,119,0,167,0,215,0,39,0,87,0,135,0,183,0,231,0,11,0,59,0,107,0,155,0,203,0,27,0,75,0,123,0,171,0,219,0,43,0,91,0,139,0,187,0,235,0,15,0,63,0,111,0,159,0,207,0,31,0,79,0,127,0,175,0,223,0,47,0,95,0,143,0,191,0,239,0,0,0,96,0,192,0,32,1,128,1,32,0,128,0,224,0,64,1,160,1,64,0,160,0,0,1,96,1,192,1,8,0,104,0,200,0,40,1,136,1,40,0,136,0,232,0,72,1,168,1,72,0,168,0,8,1,104,1,200,1,16,0,112,0,208,0,48,1,144,1,48,0,144,0,240,0,80,1,176,1,80,0,176,0,16,1,112,1,208,1,24,0,120,0,216,0,56,1,152,1,56,0,152,0,248,0,88,1,184,1,88,0,184,0,24,1,120,1,216,1,4,0,100,0,196,0,36,1,132,1,36,0,132,0,228,0,68,1,164,1,68,0,164,0,4,1,100,1,196,1,12,0,108,0,204,0,44,1,140,1,44,0,140,0,236,0,76,1,172,1,76,0,172,0,12,1,108,1,204,1,20,0,116,0,212,0,52,1,148,1,52,0,148,0,244,0,84,1,180,1,84,0,180,0,20,1,116,1,212,1,28,0,124,0,220,0,60,1,156,1,60,0,156,0,252,0,92,1,188,1,92,0,188,0,28,1,124,1,220,1,1,0,97,0,193,0,33,1,129,1,33,0,129,0,225,0,65,1,161,1,65,0,161,0,1,1,97,1,193,1,9,0,105,0,201,0,41,1,137,1,41,0,137,0,233,0,73,1,169,1,73,0,169,0,9,1,105,1,201,1,17,0,113,0,209,0,49,1,145,1,49,0,145,0,241,0,81,1,177,1,81,0,177,0,17,1,113,1,209,1,25,0,121,0,217,0,57,1,153,1,57,0,153,0,249,0,89,1,185,1,89,0,185,0,25,1,121,1,217,1,5,0,101,0,197,0,37,1,133,1,37,0,133,0,229,0,69,1,165,1,69,0,165,0,5,1,101,1,197,1,13,0,109,0,205,0,45,1,141,1,45,0,141,0,237,0,77,1,173,1,77,0,173,0,13,1,109,1,205,1,21,0,117,0,213,0,53,1,149,1,53,0,149,0,245,0,85,1,181,1,85,0,181,0,21,1,117,1,213,1,29,0,125,0,221,0,61,1,157,1,61,0,157,0,253,0,93,1,189,1,93,0,189,0,29,1,125,1,221,1,2,0,98,0,194,0,34,1,130,1,34,0,130,0,226,0,66,1,162,1,66,0,162,0,2,1,98,1,194,1,10,0,106,0,202,0,42,1,138,1,42,0,138,0,234,0,74,1,170,1,74,0,170,0,10,1,106,1,202,1,18,0,114,0,210,0,50,1,146,1,50,0,146,0,242,0,82,1,178,1,82,0,178,0,18,1,114,1,210,1,26,0,122,0,218,0,58,1,154,1,58,0,154,0,250,0,90,1,186,1,90,0,186,0,26,1,122,1,218,1,6,0,102,0,198,0,38,1,134,1,38,0,134,0,230,0,70,1,166,1,70,0,166,0,6,1,102,1,198,1,14,0,110,0,206,0,46,1,142,1,46,0,142,0,238,0,78,1,174,1,78,0,174,0,14,1,110,1,206,1,22,0,118,0,214,0,54,1,150,1,54,0,150,0,246,0,86,1,182,1,86,0,182,0,22,1,118,1,214,1,30,0,126,0,222,0,62,1,158,1,62,0,158,0,254,0,94,1,190,1,94,0,190,0,30,1,126,1,222,1,3,0,99,0,195,0,35,1,131,1,35,0,131,0,227,0,67,1,163,1,67,0,163,0,3,1,99,1,195,1,11,0,107,0,203,0,43,1,139,1,43,0,139,0,235,0,75,1,171,1,75,0,171,0,11,1,107,1,203,1,19,0,115,0,211,0,51,1,147,1,51,0,147,0,243,0,83,1,179,1,83,0,179,0,19,1,115,1,211,1,27,0,123,0,219,0,59,1,155,1,59,0,155,0,251,0,91,1,187,1,91,0,187,0,27,1,123,1,219,1,7,0,103,0,199,0,39,1,135,1,39,0,135,0,231,0,71,1,167,1,71,0,167,0,7,1,103,1,199,1,15,0,111,0,207,0,47,1,143,1,47,0,143,0,239,0,79,1,175,1,79,0,175,0,15,1,111,1,207,1,23,0,119,0,215,0,55,1,151,1,55,0,151,0,247,0,87,1,183,1,87,0,183,0,23,1,119,1,215,1,31,0,127,0,223,0,63,1,159,1,63,0,159,0,255],"i8",ALLOC_NONE,Runtime.GLOBAL_BASE+10240);allocate([95,1,191,1,95,0,191,0,31,1,127,1,223,1,184,126,154,121,154,121,102,102,184,126,51,115,210,6,138,58,171,152,198,26,169,100,246,216,0,255,0,255,0,255,0,255,0,255,0,254,1,0,1,255,0,254,0,253,2,0,1,255,0,254,0,253,3,0,1,255,224,112,44,15,3,2,1,0,254,237,192,132,70,23,4,0,255,252,226,155,61,11,2,0,250,245,234,203,71,50,42,38,35,33,31,29,28,27,26,25,24,23,22,21,20,19,18,17,16,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,0,179,99,0,71,56,43,30,21,12,6,0,199,165,144,124,109,96,84,71,61,51,42,32,23,15,8,0,241,225,211,199,187,175,164,153,142,132,123,114,105,96,88,80,72,64,57,50,44,38,33,29,24,20,16,12,9,5,2,0,4,6,24,7,5,0,0,2,0,0,12,28,41,13,252,247,15,42,25,14,1,254,62,41,247,246,37,65,252,3,250,4,66,7,248,16,14,38,253,33,13,22,39,23,12,255,36,64,27,250,249,10,55,43,17,1,1,8,1,1,6,245,74,53,247,244,55,76,244,8,253,3,93,27,252,26,39,59,3,248,2,0,77,11,9,248,22,44,250,7,40,9,26,3,9,249,20,101,249,4,3,248,42,26,0,241,33,68,2,23,254,55,46,254,15,3,255,21,16,41,250,27,61,39,5,245,42,88,4,1,254,60,65,6,252,255,251,73,56,1,247,19,94,29,247,0,12,99,6,4,8,237,102,46,243,3,2,13,3,2,9,235,84,72,238,245,46,104,234,8,18,38,48,23,0,240,70,83,235,11,5,245,117,22,248,250,23,117,244,3,3,248,95,28,4,246,15,77,60,241,255,4,124,2,252,3,38,84,24,231,2,13,42,13,31,21,252,56,46,255,255,35,79,243,19,249,65,88,247,242,20,4,81,49,227,20,0,75,3,239,5,247,44,92,248,1,253,22,69,31,250,95,41,244,5,39,67,16,252,1,0,250,120,55,220,243,44,122,4,232,81,5,11,3,7,2,0,9,10,88,12,35,60,83,108,132,157,180,206,228,15,32,55,77,101,125,151,175,201,225,19,42,66,89,114,137,162,184,209,230,12,25,50,72,97,120,147,172,200,223,26,44,69,90,114,135,159,180,205,225,13,22,53,80,106,130,156,180,205,228,15,25,44,64,90,115,142,168,196,222,19,24,62,82,100,120,145,168,190,214,22,31,50,79,103,120,151,170,203,227,21,29,45,65,106,124,150,171,196,224,30,49,75,97,121,142,165,186,209,229,19,25,52,70,93,116,143,166,192,219,26,34,62,75,97,118,145,167,194,217,25,33,56,70,91,113,143,165,196,223,21,34,51,72,97,117,145,171,196,222,20,29,50,67,90,117,144,168,197,221,22,31,48,66,95,117,146,168,196,222,24,33,51,77,116,134,158,180,200,224,21,28,70,87,106,124,149,170,194,217,26,33,53,64,83,117,152,173,204,225,27,34,65,95,108,129,155,174,210,225,20,26,72,99,113,131,154,176,200,219,34,43,61,78,93,114,155,177,205,229,23,29,54,97,124,138,163,179,209,229,30,38,56,89,118,129,158,178,200,231,21,29,49,63,85,111,142,163,193,222,27,48,77,103,133,158,179,196,215,232,29,47,74,99,124,151,176,198,220,237,33,42,61,76,93,121,155,174,207,225,29,53,87,112,136,154,170,188,208,227,24,30,52,84,131,150,166,186,203,229,37,48,64,84,104,118,156,177,201,230,212,178,148,129,108,96,85,82,79,77,61,59,57,56,51,49,48,45,42,41,40,38,36,34,31,30,21,12,10,3,1,0,255,245,244,236,233,225,217,203,190,176,175,161,149,136,125,114,102,91,81,71,60,52,43,35,28,20,19,18,12,11,5,0,179,138,140,148,151,149,153,151,163,116,67,82,59,92,72,100,89,92,16,0,0,0,0,99,66,36,36,34,36,34,34,34,34,83,69,36,52,34,116,102,70,68,68,176,102,68,68,34,65,85,68,84,36,116,141,152,139,170,132,187,184,216,137,132,249,168,185,139,104,102,100,68,68,178,218,185,185,170,244,216,187,187,170,244,187,187,219,138,103,155,184,185,137,116,183,155,152,136,132,217,184,184,170,164,217,171,155,139,244,169,184,185,170,164,216,223,218,138,214,143,188,218,168,244,141,136,155,170,168,138,220,219,139,164,219,202,216,137,168,186,246,185,139,116,185,219,185,138,100,100,134,100,102,34,68,68,100,68,168,203,221,218,168,167,154,136,104,70,164,246,171,137,139,137,155,218,219,139,255,254,253,238,14,3,2,1,0,255,254,252,218,35,3,2,1,0,255,254,250,208,59,4,2,1,0,255,254,246,194,71,10,2,1,0,255,252,236,183,82,8,2,1,0,255,252,235,180,90,17,2,1,0,255,248,224,171,97,30,4,1,0,255,254,236,173,95,37,7,1,0,255,255,255,131,6,145,255,255,255,255,255,236,93,15,96,255,255,255,255,255,194,83,25,71,221,255,255,255,255,162,73,34,66,162,255,255,255,210,126,73,43,57,173,255,255,255,201,125,71,48,58,130,255,255,255,166,110,73,57,62,104,210,255,255,251,123,65,55,68,100,171,255,7,23,38,54,69,85,100,116,131,147,162,178,193,208,223,239,13,25,41,55,69,83,98,112,127,142,157,171,187,203,220,236,15,21,34,51,61,78,92,106,126,136,152,167,185,205,225,240,10,21,36,50,63,79,95,110,126,141,157,173,189,205,221,237,17,20,37,51,59,78,89,107,123,134,150,164,184,205,224,240,10,15,32,51,67,81,96,112,129,142,158,173,189,204,220,236,8,21,37,51,65,79,98,113,126,138,155,168,179,192,209,218,12,15,34,55,63,78,87,108,118,131,148,167,185,203,219,236,16,19,32,36,56,79,91,108,118,136,154,171,186,204,220,237,11,28,43,58,74,89,105,120,135,150,165,180,196,211,226,241,6,16,33,46,60,75,92,107,123,137,156,169,185,199,214,225,11,19,30,44,57,74,89,105,121,135,152,169,186,202,218,234,12,19,29,46,57,71,88,100,120,132,148,165,182,199,216,233,17,23,35,46,56,77,92,106,123,134,152,167,185,204,222,237,14,17,45,53,63,75,89,107,115,132,151,171,188,206,221,240,9,16,29,40,56,71,88,103,119,137,154,171,189,205,222,237,16,19,36,48,57,76,87,105,118,132,150,167,185,202,218,236,12,17,29,54,71,81,94,104,126,136,149,164,182,201,221,237,15,28,47,62,79,97,115,129,142,155,168,180,194,208,223,238,8,14,30,45,62,78,94,111,127,143,159,175,192,207,223,239,17,30,49,62,79,92,107,119,132,145,160,174,190,204,220,235,14,19,36,45,61,76,91,108,121,138,154,172,189,205,222,238,12,18,31,45,60,76,91,107,123,138,154,171,187,204,221,236,13,17,31,43,53,70,83,103,114,131,149,167,185,203,220,237,17,22,35,42,58,78,93,110,125,139,155,170,188,206,224,240,8,15,34,50,67,83,99,115,131,146,162,178,193,209,224,239,13,16,41,66,73,86,95,111,128,137,150,163,183,206,225,241,17,25,37,52,63,75,92,102,119,132,144,160,175,191,212,231,19,31,49,65,83,100,117,133,147,161,174,187,200,213,227,242,18,31,52,68,88,103,117,126,138,149,163,177,192,207,223,239,16,29,47,61,76,90,106,119,133,147,161,176,193,209,224,240,15,21,35,50,61,73,86,97,110,119,129,141,175,198,218,237,225,204,201,184,183,175,158,154,153,135,119,115,113,110,109,99,98,95,79,68,52,50,48,45,43,32,31,27,18,10,3,0,255,251,235,230,212,201,196,182,167,166,163,151,138,124,110,104,90,78,76,70,69,57,45,34,24,21,11,6,5,4,3,0,175,148,160,176,178,173,174,164,177,174,196,182,198,192,182,68,62,66,60,72,117,85,90,118,136,151,142,160,142,155,0,0,0,0,0,0,0,1,100,102,102,68,68,36,34,96,164,107,158,185,180,185,139,102,64,66,36,34,34,0,1,32,208,139,141,191,152,185,155,104,96,171,104,166,102,102,102,132,1,0,0,0,0,16,16,0,80,109,78,107,185,139,103,101,208,212,141,139,173,153,123,103,36,0,0,0,0,0,0,1,48,0,0,0,0,0,0,32,68,135,123,119,119,103,69,98,68,103,120,118,118,102,71,98,134,136,157,184,182,153,139,134,208,168,248,75,189,143,121,107,32,49,34,34,34,0,17,2,210,235,139,123,185,137,105,134,98,135,104,182,100,183,171,134,100,70,68,70,66,66,34,131,64,166,102,68,36,2,1,0,134,166,102,68,34,34,66,132,212,246,158,139,107,107,87,102,100,219,125,122,137,118,103,132,114,135,137,105,171,106,50,34,164,214,141,143,185,151,121,103,192,34,0,0,0,0,0,1,208,109,74,187,134,249,159,137,102,110,154,118,87,101,119,101,0,2,0,36,36,66,68,35,96,164,102,100,36,0,2,33,167,138,174,102,100,84,2,2,100,107,120,119,36,197,24,0,255,254,253,244,12,3,2,1,0,255,254,252,224,38,3,2,1,0,255,254,251,209,57,4,2,1,0,255,254,244,195,69,4,2,1,0,255,251,232,184,84,7,2,1,0,255,254,240,186,86,14,2,1,0,255,254,239,178,91,30,5,1,0,255,248,227,177,100,19,2,1,0,255,255,255,156,4,154,255,255,255,255,255,227,102,15,92,255,255,255,255,255,213,83,24,72,236,255,255,255,255,150,76,33,63,214,255,255,255,190,121,77,43,55,185,255,255,255,245,137,71,43,59,139,255,255,255,255,131,66,50,66,107,194,255,255,166,116,76,55,53,125,255,255,249,247,246,245,244,234,210,202,201,200,197,174,82,59,56,55,54,46,22,12,11,10,9,7,0,64,0,203,150,0,215,195,166,125,110,82,0,120,0,128,64,0,232,158,10,0,230,0,243,221,192,181,0,171,85,0,192,128,64,0,205,154,102,51,0,213,171,128,85,43,0,224,192,160,128,96,64,32,0,100,40,16,7,3,1,0,253,250,244,233,212,182,150,131,120,110,98,85,72,60,49,40,32,25,19,15,13,11,9,8,7,6,5,4,3,2,1,0,210,208,206,203,199,193,183,168,142,104,74,52,37,27,20,14,10,6,4,2,0,223,201,183,167,152,138,124,111,98,88,79,70,62,56,50,44,39,35,31,27,24,21,18,16,14,12,10,8,6,4,3,2,1,0,188,176,155,138,119,97,67,43,26,10,0,165,119,80,61,47,35,27,20,14,9,4,0,113,63,0,125,51,26,18,15,12,11,10,9,8,7,6,5,4,3,2,1,0,198,105,45,22,15,12,11,10,9,8,7,6,5,4,3,2,1,0,213,162,116,83,59,43,32,24,18,15,12,9,7,6,5,3,2,0,239,187,116,59,28,16,11,10,9,8,7,6,5,4,3,2,1,0,250,229,188,135,86,51,30,19,13,10,8,6,5,4,3,2,1,0,249,235,213,185,156,128,103,83,66,53,42,33,26,21,17,13,10,0,254,249,235,206,164,118,77,46,27,16,10,7,5,4,3,2,1,0,255,253,249,239,220,191,156,119,85,57,37,23,15,10,6,4,2,0,255,253,251,246,237,223,203,179,152,124,98,75,55,40,29,21,15,0,255,254,253,247,220,162,106,67,42,28,18,12,9,6,4,3,2,0,241,190,178,132,87,74,41,14,0,223,193,157,140,106,57,39,18,0,128,0,214,42,0,235,128,21,0,244,184,72,11,0,248,214,128,42,7,0,248,225,170,80,25,5,0,251,236,198,126,54,18,3,0,250,238,211,159,82,35,15,5,0,250,231,203,168,128,88,53,25,6,0,252,238,216,185,148,108,71,40,18,4,0,253,243,225,199,166,128,90,57,31,13,3,0,254,246,233,212,183,147,109,73,44,23,10,2,0,255,250,240,223,198,166,128,90,58,33,16,6,1,0,255,251,244,231,210,181,146,110,75,46,25,12,5,1,0,255,253,248,238,221,196,164,128,92,60,35,18,8,3,1,0,255,253,249,242,229,208,180,146,110,76,48,27,14,7,3,1,0,129,0,207,50,0,236,129,20,0,245,185,72,10,0,249,213,129,42,6,0,250,226,169,87,27,4,0,251,233,194,130,62,20,4,0,250,236,207,160,99,47,17,3,0,255,240,217,182,131,81,41,11,1,0,255,254,233,201,159,107,61,20,2,1,0,255,249,233,206,170,128,86,50,23,7,1,0,255,250,238,217,186,148,108,70,39,18,6,1,0,255,252,243,226,200,166,128,90,56,30,13,4,1,0,255,252,245,231,209,180,146,110,76,47,25,11,4,1,0,255,253,248,237,219,194,163,128,93,62,37,19,8,3,1,0,255,254,250,241,226,205,177,145,111,79,51,30,15,6,2,1,0,129,0,203,54,0,234,129,23,0,245,184,73,10,0,250,215,129,41,5,0,252,232,173,86,24,3,0,253,240,200,129,56,15,2,0,253,244,217,164,94,38,10,1,0,253,245,226,189,132,71,27,7,1,0,253,246,231,203,159,105,56,23,6,1,0,255,248,235,213,179,133,85,47,19,5,1,0,255,254,243,221,194,159,117,70,37,12,2,1,0,255,254,248,234,208,171,128,85,48,22,8,2,1,0,255,254,250,240,220,189,149,107,67,36,16,6,2,1,0,255,254,251,243,227,201,166,128,90,55,29,13,5,2,1,0,255,254,252,246,234,213,183,147,109,73,43,22,10,4,2,1,0,130,0,200,58,0,231,130,26,0,244,184,76,12,0,249,214,130,43,6,0,252,232,173,87,24,3,0,253,241,203,131,56,14,2,0,254,246,221,167,94,35,8,1,0,254,249,232,193,130,65,23,5,1,0,255,251,239,211,162,99,45,15,4,1,0,255,251,243,223,186,131,74,33,11,3,1,0,255,252,245,230,202,158,105,57,24,8,2,1,0,255,253,247,235,214,179,132,84,44,19,7,2,1,0,255,254,250,240,223,196,159,112,69,36,15,6,2,1,0,255,254,253,245,231,209,176,136,93,55,27,11,3,2,1,0,255,254,253,252,239,221,194,158,117,76,42,18,4,3,2,1,0,0,0,2,5,9,14,20,27,35,44,54,65,77,90,104,119,135,254,49,67,77,82,93,99,198,11,18,24,31,36,45,255,46,66,78,87,94,104,208,14,21,32,42,51,66,255,94,104,109,112,115,118,248,53,69,80,88,95,102,0,1,0,0,0,1,0,0,1,255,1,255,2,254,2,254,3,253,0,1,0,1,255,2,255,2,254,3,254,3,0,2,255,255,255,0,0,1,1,0,1,0,1,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,255,2,1,0,1,1,0,0,255,255,0,0,1,255,0,1,255,0,255,1,254,2,254,254,2,253,2,3,253,252,3,252,4,4,251,5,250,251,6,249,6,5,8,247,0,0,1,0,0,0,0,0,0,0,255,1,0,0,1,255,0,1,255,255,1,255,2,1,255,2,254,254,2,254,2,2,3,253,0,1,0,0,0,0,0,0,1,0,1,0,0,1,255,1,0,0,2,1,255,2,255,255,2,255,2,2,255,3,254,254,254,3,0,1,0,0,1,0,1,255,2,255,2,255,2,3,254,3,254,254,4,4,253,5,253,252,6,252,6,5,251,8,250,251,249,9,0,1,1,1,2,3,3,3,2,3,3,3,2,3,3,3,0,3,12,15,48,51,60,63,192,195,204,207,240,243,252,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,90,80,75,69,63,56,49,40,34,29,20,18,10,0,0,0,0,0,0,0,0,110,100,90,84,78,71,65,58,51,45,39,32,26,20,12,0,0,0,0,0,0,118,110,103,93,86,80,75,70,65,59,53,47,40,31,23,15,4,0,0,0,0,126,119,112,104,95,89,83,78,72,66,60,54,47,39,32,25,17,12,1,0,0,134,127,120,114,103,97,91,85,78,72,66,60,54,47,41,35,29,23,16,10,1,144,137,130,124,113,107,101,95,88,82,76,70,64,57,51,45,39,33,26,15,1,152,145,138,132,123,117,111,105,98,92,86,80,74,67,61,55,49,43,36,20,1,162,155,148,142,133,127,121,115,108,102,96,90,84,77,71,65,59,53,46,30,1,172,165,158,152,143,137,131,125,118,112,106,100,94,87,81,75,69,63,56,45,20,200,200,200,200,200,200,200,200,198,193,188,183,178,173,168,163,158,153,148,129,104,40,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,40,15,23,28,31,34,36,38,39,41,42,43,44,45,46,47,47,49,50,51,52,53,54,55,55,57,58,59,60,61,62,63,63,65,66,67,68,69,70,71,71,40,20,33,41,48,53,57,61,64,66,69,71,73,75,76,78,80,82,85,87,89,91,92,94,96,98,101,103,105,107,108,110,112,114,117,119,121,123,124,126,128,40,23,39,51,60,67,73,79,83,87,91,94,97,100,102,105,107,111,115,118,121,124,126,129,131,135,139,142,145,148,150,153,155,159,163,166,169,172,174,177,179,35,28,49,65,78,89,99,107,114,120,126,132,136,141,145,149,153,159,165,171,176,180,185,189,192,199,205,211,216,220,225,229,232,239,245,251,21,33,58,79,97,112,125,137,148,157,166,174,182,189,195,201,207,217,227,235,243,251,17,35,63,86,106,123,139,152,165,177,187,197,206,214,222,230,237,250,25,31,55,75,91,105,117,128,138,146,154,161,168,174,180,185,190,200,208,215,222,229,235,240,245,255,16,36,65,89,110,128,144,159,173,185,196,207,217,226,234,242,250,11,41,74,103,128,151,172,191,209,225,241,255,9,43,79,110,138,163,186,207,227,246,12,39,71,99,123,144,164,182,198,214,228,241,253,9,44,81,113,142,168,192,214,235,255,7,49,90,127,160,191,220,247,6,51,95,134,170,203,234,7,47,87,123,155,184,212,237,6,52,97,137,174,208,240,5,57,106,151,192,231,5,59,111,158,202,243,5,55,103,147,187,224,5,60,113,161,206,248,4,65,122,175,224,4,67,127,182,234,224,224,224,224,224,224,224,224,160,160,160,160,185,185,185,178,178,168,134,61,37,224,224,224,224,224,224,224,224,240,240,240,240,207,207,207,198,198,183,144,66,40,160,160,160,160,160,160,160,160,185,185,185,185,193,193,193,183,183,172,138,64,38,240,240,240,240,240,240,240,240,207,207,207,207,204,204,204,193,193,180,143,66,40,185,185,185,185,185,185,185,185,193,193,193,193,193,193,193,183,183,172,138,65,39,207,207,207,207,207,207,207,207,204,204,204,204,201,201,201,188,188,176,141,66,40,193,193,193,193,193,193,193,193,193,193,193,193,194,194,194,184,184,173,139,65,39,204,204,204,204,204,204,204,204,201,201,201,201,198,198,198,187,187,175,140,66,40,0,8,13,16,19,21,23,24,26,27,28,29,30,31,32,32,33,34,34,35,36,36,37,37,72,127,65,129,66,128,65,128,64,128,62,128,64,128,64,128,92,78,92,79,92,78,90,79,116,41,115,40,114,40,132,26,132,26,145,17,161,12,176,10,177,11,24,179,48,138,54,135,54,132,53,134,56,133,55,132,55,132,61,114,70,96,74,88,75,88,87,74,89,66,91,67,100,59,108,50,120,40,122,37,97,43,78,50,83,78,84,81,88,75,86,74,87,71,90,73,93,74,93,74,109,40,114,36,117,34,117,34,143,17,145,18,146,19,162,12,165,10,178,7,189,6,190,8,177,9,23,178,54,115,63,102,66,98,69,99,74,89,71,91,73,91,78,89,86,80,92,66,93,64,102,59,103,60,104,60,117,52,123,44,138,35,133,31,97,38,77,45,61,90,93,60,105,42,107,41,110,45,116,38,113,38,112,38,124,26,132,27,136,19,140,20,155,14,159,16,158,18,170,13,177,10,187,8,192,6,175,9,159,10,21,178,59,110,71,86,75,85,84,83,91,66,88,73,87,72,92,75,98,72,105,58,107,54,115,52,114,55,112,56,129,51,132,40,150,33,140,29,98,35,77,42,42,121,96,66,108,43,111,40,117,44,123,32,120,36,119,33,127,33,134,34,139,21,147,23,152,20,158,25,154,26,166,21,173,16,184,13,184,10,150,13,139,15,22,178,63,114,74,82,84,83,92,82,103,62,96,72,96,67,101,73,107,72,113,55,118,52,125,52,118,52,117,55,135,49,137,39,157,32,145,29,97,33,77,40,2,1,0,2,1,0,25,23,2,0,126,124,119,109,87,41,19,9,4,2,0,0,15,8,7,4,11,12,3,2,13,10,5,6,9,14,1,0,9,6,3,4,5,8,1,2,7,6,0,3,0,7,3,0,1,10,0,2,6,18,10,12,4,0,2,0,0,0,9,4,7,4,0,3,12,7,7,255,255,79,112,117,115,72,101,97,100,0],"i8",ALLOC_NONE,Runtime.GLOBAL_BASE+20480);var tempDoublePtr=STATICTOP;STATICTOP+=16;Module["_bitshift64Ashr"]=_bitshift64Ashr;Module["_i64Add"]=_i64Add;Module["_memset"]=_memset;function _abort(){Module["abort"]()}function _emscripten_memcpy_big(dest,src,num){HEAPU8.set(HEAPU8.subarray(src,src+num),dest);return dest}Module["_memcpy"]=_memcpy;var _llvm_pow_f64=Math_pow;Module["___muldsi3"]=___muldsi3;Module["___muldi3"]=___muldi3;function _llvm_stackrestore(p){var self=_llvm_stacksave;var ret=self.LLVM_SAVEDSTACKS[p];self.LLVM_SAVEDSTACKS.splice(p,1);Runtime.stackRestore(ret)}function _ogvjs_callback_audio(buffers,channels,sampleCount){var HEAPU32=Module.HEAPU32;var HEAPF32=Module.HEAPF32;var outputBuffers=[];if(buffers!==0){var inPtr,inArray,inBuffer,outArray;for(var channel=0;channel<channels;channel++){inPtr=HEAPU32[buffers/4+channel];if(HEAPF32.buffer.slice){inBuffer=HEAPF32.buffer.slice(inPtr,inPtr+sampleCount*4);outArray=new Float32Array(inBuffer)}else{inArray=HEAPF32.subarray(inPtr/4,inPtr/4+sampleCount);outArray=new Float32Array(inArray)}outputBuffers.push(outArray)}}Module.audioBuffer=outputBuffers}function _llvm_stacksave(){var self=_llvm_stacksave;if(!self.LLVM_SAVEDSTACKS){self.LLVM_SAVEDSTACKS=[]}self.LLVM_SAVEDSTACKS.push(Runtime.stackSave());return self.LLVM_SAVEDSTACKS.length-1}Module["_memmove"]=_memmove;function _ogvjs_callback_init_audio(channels,rate){Module.audioFormat={channels:channels,rate:rate};Module.loadedMetadata=true}function ___setErrNo(value){if(Module["___errno_location"])HEAP32[Module["___errno_location"]()>>2]=value;return value}Module["_sbrk"]=_sbrk;DYNAMICTOP_PTR=allocate(1,"i32",ALLOC_STATIC);STACK_BASE=STACKTOP=Runtime.alignMemory(STATICTOP);STACK_MAX=STACK_BASE+TOTAL_STACK;DYNAMIC_BASE=Runtime.alignMemory(STACK_MAX);HEAP32[DYNAMICTOP_PTR>>2]=DYNAMIC_BASE;staticSealed=true;function invoke_viiiiii(index,a1,a2,a3,a4,a5,a6){try{Module["dynCall_viiiiii"](index,a1,a2,a3,a4,a5,a6)}catch(e){if(typeof e!=="number"&&e!=="longjmp")throw e;Module["setThrew"](1,0)}}Module.asmGlobalArg={"Math":Math,"Int8Array":Int8Array,"Int16Array":Int16Array,"Int32Array":Int32Array,"Uint8Array":Uint8Array,"Uint16Array":Uint16Array,"Uint32Array":Uint32Array,"Float32Array":Float32Array,"Float64Array":Float64Array,"NaN":NaN,"Infinity":Infinity};Module.asmLibraryArg={"abort":abort,"assert":assert,"enlargeMemory":enlargeMemory,"getTotalMemory":getTotalMemory,"abortOnCannotGrowMemory":abortOnCannotGrowMemory,"invoke_viiiiii":invoke_viiiiii,"_ogvjs_callback_init_audio":_ogvjs_callback_init_audio,"_llvm_pow_f64":_llvm_pow_f64,"_abort":_abort,"___setErrNo":___setErrNo,"_llvm_stacksave":_llvm_stacksave,"_ogvjs_callback_audio":_ogvjs_callback_audio,"_emscripten_memcpy_big":_emscripten_memcpy_big,"_llvm_stackrestore":_llvm_stackrestore,"DYNAMICTOP_PTR":DYNAMICTOP_PTR,"tempDoublePtr":tempDoublePtr,"ABORT":ABORT,"STACKTOP":STACKTOP,"STACK_MAX":STACK_MAX};// EMSCRIPTEN_START_ASM
var asm=(function(global,env,buffer) {
"use asm";var a=new global.Int8Array(buffer);var b=new global.Int16Array(buffer);var c=new global.Int32Array(buffer);var d=new global.Uint8Array(buffer);var e=new global.Uint16Array(buffer);var f=new global.Uint32Array(buffer);var g=new global.Float32Array(buffer);var h=new global.Float64Array(buffer);var i=env.DYNAMICTOP_PTR|0;var j=env.tempDoublePtr|0;var k=env.ABORT|0;var l=env.STACKTOP|0;var m=env.STACK_MAX|0;var n=0;var o=0;var p=0;var q=0;var r=global.NaN,s=global.Infinity;var t=0,u=0,v=0,w=0,x=0.0,y=0,z=0,A=0,B=0.0;var C=0;var D=global.Math.floor;var E=global.Math.abs;var F=global.Math.sqrt;var G=global.Math.pow;var H=global.Math.cos;var I=global.Math.sin;var J=global.Math.tan;var K=global.Math.acos;var L=global.Math.asin;var M=global.Math.atan;var N=global.Math.atan2;var O=global.Math.exp;var P=global.Math.log;var Q=global.Math.ceil;var R=global.Math.imul;var S=global.Math.min;var T=global.Math.max;var U=global.Math.clz32;var V=env.abort;var W=env.assert;var X=env.enlargeMemory;var Y=env.getTotalMemory;var Z=env.abortOnCannotGrowMemory;var _=env.invoke_viiiiii;var $=env._ogvjs_callback_init_audio;var aa=env._llvm_pow_f64;var ba=env._abort;var ca=env.___setErrNo;var da=env._llvm_stacksave;var ea=env._ogvjs_callback_audio;var fa=env._emscripten_memcpy_big;var ga=env._llvm_stackrestore;var ha=0.0;
// EMSCRIPTEN_START_FUNCS
function ja(a){a=a|0;var b=0;b=l;l=l+a|0;l=l+15&-16;return b|0}function ka(){return l|0}function la(a){a=a|0;l=a}function ma(a,b){a=a|0;b=b|0;l=a;m=b}function na(a,b){a=a|0;b=b|0;if(!n){n=a;o=b}}function oa(a){a=a|0;C=a}function pa(){return C|0}function qa(a){a=a|0;var b=0,d=0;b=l;l=l+16|0;d=b;c[d>>2]=a;a=(R(1664525,c[d>>2]|0)|0)+1013904223|0;l=b;return a|0}function ra(a,d,e,f,h,i,j,k,m){a=a|0;d=d|0;e=e|0;f=f|0;h=h|0;i=i|0;j=j|0;k=k|0;m=m|0;var n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0.0;n=l;l=l+80|0;o=n+72|0;p=n+68|0;q=n+64|0;r=n+60|0;s=n+56|0;t=n+52|0;u=n+48|0;v=n+44|0;w=n+40|0;x=n+36|0;y=n+32|0;z=n+28|0;A=n+24|0;B=n+20|0;C=n+16|0;D=n+12|0;E=n+8|0;F=n+4|0;G=n;c[o>>2]=a;c[p>>2]=d;c[q>>2]=e;c[r>>2]=f;c[s>>2]=h;c[t>>2]=i;c[u>>2]=j;c[v>>2]=k;c[w>>2]=m;c[C>>2]=c[(c[o>>2]|0)+32>>2];c[y>>2]=R(c[u>>2]|0,c[(c[o>>2]|0)+44>>2]|0)|0;c[z>>2]=R(c[u>>2]|0,b[(c[C>>2]|0)+(c[t>>2]<<1)>>1]|0)|0;if((c[v>>2]|0)!=1){if((c[z>>2]|0)<((c[y>>2]|0)/(c[v>>2]|0)|0|0))H=c[z>>2]|0;else H=(c[y>>2]|0)/(c[v>>2]|0)|0;c[z>>2]=H}if(c[w>>2]|0){c[z>>2]=0;c[t>>2]=0;c[s>>2]=0}c[A>>2]=c[q>>2];c[B>>2]=(c[p>>2]|0)+((R(c[u>>2]|0,b[(c[C>>2]|0)+(c[s>>2]<<1)>>1]|0)|0)<<2);c[x>>2]=0;while(1){if((c[x>>2]|0)>=(R(c[u>>2]|0,b[(c[C>>2]|0)+(c[s>>2]<<1)>>1]|0)|0))break;p=c[A>>2]|0;c[A>>2]=p+4;g[p>>2]=0.0;c[x>>2]=(c[x>>2]|0)+1}c[x>>2]=c[s>>2];while(1){if((c[x>>2]|0)>=(c[t>>2]|0))break;c[D>>2]=R(c[u>>2]|0,b[(c[C>>2]|0)+(c[x>>2]<<1)>>1]|0)|0;c[E>>2]=R(c[u>>2]|0,b[(c[C>>2]|0)+((c[x>>2]|0)+1<<1)>>1]|0)|0;g[G>>2]=+g[(c[r>>2]|0)+(c[x>>2]<<2)>>2]+ +g[8+(c[x>>2]<<2)>>2];g[F>>2]=+O(+(+g[G>>2]*.6931471805599453));do{s=c[B>>2]|0;c[B>>2]=s+4;I=+g[s>>2]*+g[F>>2];s=c[A>>2]|0;c[A>>2]=s+4;g[s>>2]=I;s=(c[D>>2]|0)+1|0;c[D>>2]=s}while((s|0)<(c[E>>2]|0));c[x>>2]=(c[x>>2]|0)+1}He((c[q>>2]|0)+(c[z>>2]<<2)|0,0,(c[y>>2]|0)-(c[z>>2]|0)<<2|0)|0;l=n;return}function sa(a,e,f,h,i,j,k,m,n,o,p,q,r){a=a|0;e=e|0;f=f|0;h=h|0;i=i|0;j=j|0;k=k|0;m=m|0;n=n|0;o=o|0;p=p|0;q=q|0;r=r|0;var s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,P=0,Q=0,S=0,T=0,U=0,V=0,W=0,X=0.0,Y=0.0,Z=0.0;s=l;l=l+112|0;t=s+104|0;u=s+100|0;v=s+96|0;w=s+92|0;x=s+88|0;y=s+84|0;z=s+80|0;A=s+76|0;B=s+72|0;C=s+68|0;D=s+64|0;E=s+60|0;G=s+56|0;H=s+52|0;I=s+48|0;J=s+44|0;K=s+40|0;L=s+36|0;M=s+32|0;N=s+28|0;P=s+24|0;Q=s+20|0;S=s+16|0;T=s+12|0;U=s+8|0;V=s+4|0;W=s;c[t>>2]=a;c[u>>2]=e;c[v>>2]=f;c[w>>2]=h;c[x>>2]=i;c[y>>2]=j;c[z>>2]=k;c[A>>2]=m;c[B>>2]=n;c[C>>2]=o;c[D>>2]=p;c[E>>2]=q;c[G>>2]=r;c[I>>2]=c[z>>2];while(1){if((c[I>>2]|0)>=(c[A>>2]|0))break;c[L>>2]=(b[(c[(c[t>>2]|0)+32>>2]|0)+((c[I>>2]|0)+1<<1)>>1]|0)-(b[(c[(c[t>>2]|0)+32>>2]|0)+(c[I>>2]<<1)>>1]|0);z=ta(1+(c[(c[E>>2]|0)+(c[I>>2]<<2)>>2]|0)|0,(b[(c[(c[t>>2]|0)+32>>2]|0)+((c[I>>2]|0)+1<<1)>>1]|0)-(b[(c[(c[t>>2]|0)+32>>2]|0)+(c[I>>2]<<1)>>1]|0)|0)|0;c[P>>2]=z>>>(c[w>>2]|0);g[M>>2]=+O(+(+(c[P>>2]|0)*-.125*.6931471805599453))*.5;g[N>>2]=1.0/+F(+(+(c[L>>2]<<c[w>>2]|0)));c[H>>2]=0;do{c[W>>2]=0;z=R(c[H>>2]|0,c[(c[t>>2]|0)+8>>2]|0)|0;g[S>>2]=+g[(c[C>>2]|0)+(z+(c[I>>2]|0)<<2)>>2];z=R(c[H>>2]|0,c[(c[t>>2]|0)+8>>2]|0)|0;g[T>>2]=+g[(c[D>>2]|0)+(z+(c[I>>2]|0)<<2)>>2];if((c[x>>2]|0)==1){if(+g[S>>2]>+g[(c[C>>2]|0)+((c[(c[t>>2]|0)+8>>2]|0)+(c[I>>2]|0)<<2)>>2])X=+g[S>>2];else X=+g[(c[C>>2]|0)+((c[(c[t>>2]|0)+8>>2]|0)+(c[I>>2]|0)<<2)>>2];g[S>>2]=X;if(+g[T>>2]>+g[(c[D>>2]|0)+((c[(c[t>>2]|0)+8>>2]|0)+(c[I>>2]|0)<<2)>>2])Y=+g[T>>2];else Y=+g[(c[D>>2]|0)+((c[(c[t>>2]|0)+8>>2]|0)+(c[I>>2]|0)<<2)>>2];g[T>>2]=Y}z=R(c[H>>2]|0,c[(c[t>>2]|0)+8>>2]|0)|0;g[U>>2]=+g[(c[B>>2]|0)+(z+(c[I>>2]|0)<<2)>>2]-(+g[S>>2]<+g[T>>2]?+g[S>>2]:+g[T>>2]);g[U>>2]=0.0>+g[U>>2]?0.0:+g[U>>2];g[V>>2]=+O(+(-+g[U>>2]*.6931471805599453))*2.0;if((c[w>>2]|0)==3)g[V>>2]=+g[V>>2]*1.4142135381698608;g[V>>2]=+g[M>>2]<+g[V>>2]?+g[M>>2]:+g[V>>2];g[V>>2]=+g[V>>2]*+g[N>>2];z=(c[u>>2]|0)+((R(c[H>>2]|0,c[y>>2]|0)|0)<<2)|0;c[Q>>2]=z+(b[(c[(c[t>>2]|0)+32>>2]|0)+(c[I>>2]<<1)>>1]<<c[w>>2]<<2);c[K>>2]=0;while(1){if((c[K>>2]|0)>=(1<<c[w>>2]|0))break;z=R(c[I>>2]|0,c[x>>2]|0)|0;if(!(d[(c[v>>2]|0)+(z+(c[H>>2]|0))>>0]&1<<c[K>>2])){c[J>>2]=0;while(1){if((c[J>>2]|0)>=(c[L>>2]|0))break;c[G>>2]=qa(c[G>>2]|0)|0;Z=+g[V>>2];g[(c[Q>>2]|0)+((c[J>>2]<<c[w>>2])+(c[K>>2]|0)<<2)>>2]=c[G>>2]&32768|0?Z:-Z;c[J>>2]=(c[J>>2]|0)+1}c[W>>2]=1}c[K>>2]=(c[K>>2]|0)+1}if(c[W>>2]|0)ua(c[Q>>2]|0,c[L>>2]<<c[w>>2],1.0);z=(c[H>>2]|0)+1|0;c[H>>2]=z}while((z|0)<(c[x>>2]|0));c[I>>2]=(c[I>>2]|0)+1}l=s;return}function ta(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=l;l=l+16|0;e=d+4|0;f=d;c[e>>2]=a;c[f>>2]=b;l=d;return ((c[e>>2]|0)>>>0)/((c[f>>2]|0)>>>0)|0|0}function ua(a,b,d){a=a|0;b=b|0;d=+d;var e=0,f=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0;e=l;l=l+32|0;f=e+28|0;h=e+24|0;i=e+20|0;j=e+16|0;k=e+12|0;m=e+8|0;n=e+4|0;o=e;c[f>>2]=a;c[h>>2]=b;g[i>>2]=d;g[k>>2]=+va(c[f>>2]|0,c[f>>2]|0,c[h>>2]|0)+1.0000000036274937e-15;g[n>>2]=+g[k>>2];d=1.0/+F(+(+g[n>>2]));g[m>>2]=d*+g[i>>2];c[o>>2]=c[f>>2];c[j>>2]=0;while(1){if((c[j>>2]|0)>=(c[h>>2]|0))break;g[c[o>>2]>>2]=+g[m>>2]*+g[c[o>>2]>>2];c[o>>2]=(c[o>>2]|0)+4;c[j>>2]=(c[j>>2]|0)+1}l=e;return}function va(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,h=0,i=0,j=0,k=0,m=0.0;e=l;l=l+32|0;f=e+16|0;h=e+12|0;i=e+8|0;j=e+4|0;k=e;c[f>>2]=a;c[h>>2]=b;c[i>>2]=d;g[k>>2]=0.0;c[j>>2]=0;while(1){m=+g[k>>2];if((c[j>>2]|0)>=(c[i>>2]|0))break;g[k>>2]=m+ +g[(c[f>>2]|0)+(c[j>>2]<<2)>>2]*+g[(c[h>>2]|0)+(c[j>>2]<<2)>>2];c[j>>2]=(c[j>>2]|0)+1}l=e;return +m}function wa(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,h=0,i=0,j=0,k=0,m=0,n=0;e=l;l=l+32|0;f=e+24|0;h=e+20|0;i=e+16|0;j=e+12|0;k=e+8|0;m=e+4|0;n=e;c[f>>2]=a;c[h>>2]=b;c[i>>2]=d;c[h>>2]=c[h>>2]>>1;c[j>>2]=0;while(1){if((c[j>>2]|0)>=(c[i>>2]|0))break;c[k>>2]=0;while(1){if((c[k>>2]|0)>=(c[h>>2]|0))break;d=R(c[i>>2]<<1,c[k>>2]|0)|0;g[m>>2]=+g[(c[f>>2]|0)+(d+(c[j>>2]|0)<<2)>>2]*.7071067690849304;d=R(c[i>>2]|0,(c[k>>2]<<1)+1|0)|0;g[n>>2]=+g[(c[f>>2]|0)+(d+(c[j>>2]|0)<<2)>>2]*.7071067690849304;d=R(c[i>>2]<<1,c[k>>2]|0)|0;g[(c[f>>2]|0)+(d+(c[j>>2]|0)<<2)>>2]=+g[m>>2]+ +g[n>>2];d=R(c[i>>2]|0,(c[k>>2]<<1)+1|0)|0;g[(c[f>>2]|0)+(d+(c[j>>2]|0)<<2)>>2]=+g[m>>2]-+g[n>>2];c[k>>2]=(c[k>>2]|0)+1}c[j>>2]=(c[j>>2]|0)+1}l=e;return}function xa(e,f,h,i,j,k,m,n,o,p,q,r,s,t,u,v,w,x,y,z){e=e|0;f=f|0;h=h|0;i=i|0;j=j|0;k=k|0;m=m|0;n=n|0;o=o|0;p=p|0;q=q|0;r=r|0;s=s|0;t=t|0;u=u|0;v=v|0;w=w|0;x=x|0;y=y|0;z=z|0;var A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,$=0,aa=0,ba=0,ca=0,ea=0,fa=0,ha=0,ia=0,ja=0,ka=0,la=0,ma=0,na=0,oa=0,pa=0,qa=0,ra=0,sa=0,ta=0,ua=0,va=0,wa=0,xa=0,Ca=0,Da=0,Ea=0,Fa=0,Ga=0,Ha=0,Ia=0,Ja=0,Ka=0,La=0,Ma=0,Na=0,Oa=0,Pa=0,Qa=0,Ra=0;A=l;l=l+240|0;B=A+232|0;C=A+228|0;D=A+224|0;E=A+220|0;F=A+216|0;G=A+212|0;H=A+208|0;I=A+204|0;J=A+200|0;K=A+196|0;L=A+192|0;M=A+188|0;N=A+184|0;O=A+180|0;P=A+176|0;Q=A+172|0;S=A+168|0;T=A+164|0;U=A+160|0;V=A+156|0;W=A+152|0;X=A+148|0;Y=A+144|0;Z=A+140|0;_=A+136|0;$=A+132|0;aa=A+128|0;ba=A+124|0;ca=A+120|0;ea=A+116|0;fa=A+112|0;ha=A+108|0;ia=A+104|0;ja=A+64|0;ka=A+60|0;la=A+56|0;ma=A+52|0;na=A+48|0;oa=A+44|0;pa=A+40|0;qa=A+36|0;ra=A+32|0;sa=A+28|0;ta=A+24|0;ua=A+20|0;va=A+16|0;wa=A+12|0;xa=A+8|0;Ca=A+4|0;Da=A;c[B>>2]=e;c[C>>2]=f;c[D>>2]=h;c[E>>2]=i;c[F>>2]=j;c[G>>2]=k;c[H>>2]=m;c[I>>2]=n;c[J>>2]=o;c[K>>2]=p;c[L>>2]=q;c[M>>2]=r;c[N>>2]=s;c[O>>2]=t;c[P>>2]=u;c[Q>>2]=v;c[S>>2]=w;c[T>>2]=x;c[U>>2]=y;c[V>>2]=z;c[Y>>2]=c[(c[C>>2]|0)+32>>2];c[ea>>2]=1;c[fa>>2]=c[G>>2]|0?2:1;c[ia>>2]=((c[B>>2]|0)!=0^1)&1;c[ba>>2]=1<<c[T>>2];c[aa>>2]=c[K>>2]|0?c[ba>>2]|0:1;c[ha>>2]=R(c[ba>>2]|0,b[(c[Y>>2]|0)+(c[D>>2]<<1)>>1]|0)|0;K=R(c[ba>>2]|0,b[(c[Y>>2]|0)+((c[(c[C>>2]|0)+8>>2]|0)-1<<1)>>1]|0)|0;z=R(c[fa>>2]|0,K-(c[ha>>2]|0)|0)|0;c[ka>>2]=da()|0;K=l;l=l+((1*(z<<2)|0)+15&-16)|0;c[Z>>2]=K;K=(c[Z>>2]|0)+((R(c[ba>>2]|0,b[(c[Y>>2]|0)+((c[(c[C>>2]|0)+8>>2]|0)-1<<1)>>1]|0)|0)<<2)|0;c[_>>2]=K+(0-(c[ha>>2]|0)<<2);c[$>>2]=(c[F>>2]|0)+((R(c[ba>>2]|0,b[(c[Y>>2]|0)+((c[(c[C>>2]|0)+8>>2]|0)-1<<1)>>1]|0)|0)<<2);c[ca>>2]=0;c[ja+32>>2]=c[I>>2];c[ja+24>>2]=c[S>>2];c[ja>>2]=c[B>>2];c[ja+12>>2]=c[N>>2];c[ja+4>>2]=c[C>>2];c[ja+36>>2]=c[c[V>>2]>>2];c[ja+16>>2]=c[L>>2];c[W>>2]=c[D>>2];while(1){if((c[W>>2]|0)>=(c[E>>2]|0))break;c[pa>>2]=-1;c[sa>>2]=0;c[ja+8>>2]=c[W>>2];c[va>>2]=(c[W>>2]|0)==((c[E>>2]|0)-1|0)&1;c[qa>>2]=(c[F>>2]|0)+((R(c[ba>>2]|0,b[(c[Y>>2]|0)+(c[W>>2]<<1)>>1]|0)|0)<<2);if(c[G>>2]|0)c[ra>>2]=(c[G>>2]|0)+((R(c[ba>>2]|0,b[(c[Y>>2]|0)+(c[W>>2]<<1)>>1]|0)|0)<<2);else c[ra>>2]=0;B=R(c[ba>>2]|0,b[(c[Y>>2]|0)+((c[W>>2]|0)+1<<1)>>1]|0)|0;c[na>>2]=B-(R(c[ba>>2]|0,b[(c[Y>>2]|0)+(c[W>>2]<<1)>>1]|0)|0);c[la>>2]=ya(c[S>>2]|0)|0;if((c[W>>2]|0)!=(c[D>>2]|0))c[Q>>2]=(c[Q>>2]|0)-(c[la>>2]|0);c[X>>2]=(c[P>>2]|0)-(c[la>>2]|0)-1;c[ja+28>>2]=c[X>>2];if((c[W>>2]|0)<=((c[U>>2]|0)-1|0)){if(3<((c[U>>2]|0)-(c[W>>2]|0)|0))Ea=3;else Ea=(c[U>>2]|0)-(c[W>>2]|0)|0;c[oa>>2]=za(c[Q>>2]|0,Ea)|0;if(((c[X>>2]|0)+1|0)<((c[(c[J>>2]|0)+(c[W>>2]<<2)>>2]|0)+(c[oa>>2]|0)|0))Fa=(c[X>>2]|0)+1|0;else Fa=(c[(c[J>>2]|0)+(c[W>>2]<<2)>>2]|0)+(c[oa>>2]|0)|0;do if(16383>=(Fa|0))if(((c[X>>2]|0)+1|0)<((c[(c[J>>2]|0)+(c[W>>2]<<2)>>2]|0)+(c[oa>>2]|0)|0)){Ga=(c[X>>2]|0)+1|0;break}else{Ga=(c[(c[J>>2]|0)+(c[W>>2]<<2)>>2]|0)+(c[oa>>2]|0)|0;break}else Ga=16383;while(0);do if(0<=(Ga|0)){if(((c[X>>2]|0)+1|0)<((c[(c[J>>2]|0)+(c[W>>2]<<2)>>2]|0)+(c[oa>>2]|0)|0))Ha=(c[X>>2]|0)+1|0;else Ha=(c[(c[J>>2]|0)+(c[W>>2]<<2)>>2]|0)+(c[oa>>2]|0)|0;if(16383>=(Ha|0))if(((c[X>>2]|0)+1|0)<((c[(c[J>>2]|0)+(c[W>>2]<<2)>>2]|0)+(c[oa>>2]|0)|0)){Ia=(c[X>>2]|0)+1|0;break}else{Ia=(c[(c[J>>2]|0)+(c[W>>2]<<2)>>2]|0)+(c[oa>>2]|0)|0;break}else Ia=16383}else Ia=0;while(0);c[ma>>2]=Ia}else c[ma>>2]=0;if((c[ia>>2]|0?(B=R(c[ba>>2]|0,b[(c[Y>>2]|0)+(c[W>>2]<<1)>>1]|0)|0,(B-(c[na>>2]|0)|0)>=(R(c[ba>>2]|0,b[(c[Y>>2]|0)+(c[D>>2]<<1)>>1]|0)|0)):0)?(c[ea>>2]|0)!=0|(c[ca>>2]|0)==0:0)c[ca>>2]=c[W>>2];c[sa>>2]=c[(c[O>>2]|0)+(c[W>>2]<<2)>>2];c[ja+20>>2]=c[sa>>2];if((c[W>>2]|0)>=(c[(c[C>>2]|0)+12>>2]|0)){c[qa>>2]=c[Z>>2];if(c[G>>2]|0)c[ra>>2]=c[Z>>2];c[$>>2]=0}if((c[W>>2]|0)==((c[E>>2]|0)-1|0))c[$>>2]=0;if(c[ca>>2]|0?(c[L>>2]|0)!=3|(c[aa>>2]|0)>1|(c[sa>>2]|0)<0:0){B=R(c[ba>>2]|0,b[(c[Y>>2]|0)+(c[ca>>2]<<1)>>1]|0)|0;if(0>(B-(c[ha>>2]|0)-(c[na>>2]|0)|0))Ja=0;else{B=R(c[ba>>2]|0,b[(c[Y>>2]|0)+(c[ca>>2]<<1)>>1]|0)|0;Ja=B-(c[ha>>2]|0)-(c[na>>2]|0)|0}c[pa>>2]=Ja;c[wa>>2]=c[ca>>2];do{B=c[ba>>2]|0;I=c[Y>>2]|0;K=(c[wa>>2]|0)+-1|0;c[wa>>2]=K;z=R(B,b[I+(K<<1)>>1]|0)|0}while((z|0)>((c[pa>>2]|0)+(c[ha>>2]|0)|0));c[xa>>2]=(c[ca>>2]|0)-1;do{z=c[ba>>2]|0;K=c[Y>>2]|0;I=(c[xa>>2]|0)+1|0;c[xa>>2]=I;B=R(z,b[K+(I<<1)>>1]|0)|0}while((B|0)<((c[pa>>2]|0)+(c[ha>>2]|0)+(c[na>>2]|0)|0));c[ua>>2]=0;c[ta>>2]=0;c[Ca>>2]=c[wa>>2];do{B=d[(c[H>>2]|0)+((R(c[Ca>>2]|0,c[fa>>2]|0)|0)+0)>>0]|0;c[ta>>2]=c[ta>>2]|B;B=R(c[Ca>>2]|0,c[fa>>2]|0)|0;c[ua>>2]=c[ua>>2]|d[(c[H>>2]|0)+(B+(c[fa>>2]|0)-1)>>0];B=(c[Ca>>2]|0)+1|0;c[Ca>>2]=B}while((B|0)<(c[xa>>2]|0))}else{B=(1<<c[aa>>2])-1|0;c[ua>>2]=B;c[ta>>2]=B}a:do if((c[M>>2]|0?(c[W>>2]|0)==(c[N>>2]|0):0)?(c[M>>2]=0,c[ia>>2]|0):0){c[Da>>2]=0;while(1){B=R(c[ba>>2]|0,b[(c[Y>>2]|0)+(c[W>>2]<<1)>>1]|0)|0;if((c[Da>>2]|0)>=(B-(c[ha>>2]|0)|0))break a;g[(c[Z>>2]|0)+(c[Da>>2]<<2)>>2]=(+g[(c[Z>>2]|0)+(c[Da>>2]<<2)>>2]+ +g[(c[_>>2]|0)+(c[Da>>2]<<2)>>2])*.5;c[Da>>2]=(c[Da>>2]|0)+1}}while(0);if(c[M>>2]|0){if((c[pa>>2]|0)!=-1)Ka=(c[Z>>2]|0)+(c[pa>>2]<<2)|0;else Ka=0;if(c[va>>2]|0)La=0;else{B=(c[Z>>2]|0)+((R(c[ba>>2]|0,b[(c[Y>>2]|0)+(c[W>>2]<<1)>>1]|0)|0)<<2)|0;La=B+(0-(c[ha>>2]|0)<<2)|0}c[ta>>2]=Aa(ja,c[qa>>2]|0,c[na>>2]|0,(c[ma>>2]|0)/2|0,c[aa>>2]|0,Ka,c[T>>2]|0,La,1.0,c[$>>2]|0,c[ta>>2]|0)|0;if((c[pa>>2]|0)!=-1)Ma=(c[_>>2]|0)+(c[pa>>2]<<2)|0;else Ma=0;if(c[va>>2]|0)Na=0;else{B=(c[_>>2]|0)+((R(c[ba>>2]|0,b[(c[Y>>2]|0)+(c[W>>2]<<1)>>1]|0)|0)<<2)|0;Na=B+(0-(c[ha>>2]|0)<<2)|0}c[ua>>2]=Aa(ja,c[ra>>2]|0,c[na>>2]|0,(c[ma>>2]|0)/2|0,c[aa>>2]|0,Ma,c[T>>2]|0,Na,1.0,c[$>>2]|0,c[ua>>2]|0)|0}else{B=c[qa>>2]|0;if(c[ra>>2]|0){if((c[pa>>2]|0)!=-1)Oa=(c[Z>>2]|0)+(c[pa>>2]<<2)|0;else Oa=0;if(c[va>>2]|0)Pa=0;else{I=(c[Z>>2]|0)+((R(c[ba>>2]|0,b[(c[Y>>2]|0)+(c[W>>2]<<1)>>1]|0)|0)<<2)|0;Pa=I+(0-(c[ha>>2]|0)<<2)|0}c[ta>>2]=Ba(ja,B,c[ra>>2]|0,c[na>>2]|0,c[ma>>2]|0,c[aa>>2]|0,Oa,c[T>>2]|0,Pa,c[$>>2]|0,c[ta>>2]|c[ua>>2])|0}else{if((c[pa>>2]|0)!=-1)Qa=(c[Z>>2]|0)+(c[pa>>2]<<2)|0;else Qa=0;if(c[va>>2]|0)Ra=0;else{I=(c[Z>>2]|0)+((R(c[ba>>2]|0,b[(c[Y>>2]|0)+(c[W>>2]<<1)>>1]|0)|0)<<2)|0;Ra=I+(0-(c[ha>>2]|0)<<2)|0}c[ta>>2]=Aa(ja,B,c[na>>2]|0,c[ma>>2]|0,c[aa>>2]|0,Qa,c[T>>2]|0,Ra,1.0,c[$>>2]|0,c[ta>>2]|c[ua>>2])|0}c[ua>>2]=c[ta>>2]}a[(c[H>>2]|0)+((R(c[W>>2]|0,c[fa>>2]|0)|0)+0)>>0]=c[ta>>2];B=R(c[W>>2]|0,c[fa>>2]|0)|0;a[(c[H>>2]|0)+(B+(c[fa>>2]|0)-1)>>0]=c[ua>>2];c[Q>>2]=(c[Q>>2]|0)+((c[(c[J>>2]|0)+(c[W>>2]<<2)>>2]|0)+(c[la>>2]|0));c[ea>>2]=(c[ma>>2]|0)>(c[na>>2]<<3|0)&1;c[W>>2]=(c[W>>2]|0)+1}c[c[V>>2]>>2]=c[ja+36>>2];ga(c[ka>>2]|0);l=A;return}function ya(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0;b=l;l=l+32|0;d=b+16|0;e=b+12|0;f=b+8|0;g=b+4|0;h=b;c[d>>2]=a;c[e>>2]=c[(c[d>>2]|0)+20>>2]<<3;c[g>>2]=32-(U(c[(c[d>>2]|0)+28>>2]|0)|0);c[f>>2]=(c[(c[d>>2]|0)+28>>2]|0)>>>((c[g>>2]|0)-16|0);c[h>>2]=((c[f>>2]|0)>>>12)-8;c[h>>2]=(c[h>>2]|0)+((c[f>>2]|0)>>>0>(c[5492+(c[h>>2]<<2)>>2]|0)>>>0&1);c[g>>2]=(c[g>>2]<<3)+(c[h>>2]|0);l=b;return (c[e>>2]|0)-(c[g>>2]|0)|0}function za(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=l;l=l+16|0;e=d+4|0;f=d;c[e>>2]=a;c[f>>2]=b;l=d;return (c[e>>2]|0)/(c[f>>2]|0)|0|0}function Aa(a,b,e,f,h,i,j,k,m,n,o){a=a|0;b=b|0;e=e|0;f=f|0;h=h|0;i=i|0;j=j|0;k=k|0;m=+m;n=n|0;o=o|0;var p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0;p=l;l=l+112|0;q=p+100|0;r=p+96|0;s=p+92|0;t=p+88|0;u=p+84|0;v=p+80|0;w=p+76|0;x=p+72|0;y=p+68|0;z=p+64|0;A=p+60|0;B=p+56|0;C=p+52|0;D=p+48|0;E=p+44|0;G=p+40|0;H=p+36|0;I=p+32|0;J=p+28|0;K=p+24|0;L=p+20|0;M=p+16|0;N=p+12|0;O=p+8|0;P=p+4|0;Q=p;c[r>>2]=a;c[s>>2]=b;c[t>>2]=e;c[u>>2]=f;c[v>>2]=h;c[w>>2]=i;c[x>>2]=j;c[y>>2]=k;g[z>>2]=m;c[A>>2]=n;c[B>>2]=o;c[C>>2]=c[t>>2];c[D>>2]=c[t>>2];c[G>>2]=c[v>>2];c[H>>2]=0;c[I>>2]=0;c[K>>2]=0;c[L>>2]=((c[c[r>>2]>>2]|0)!=0^1)&1;c[N>>2]=c[c[r>>2]>>2];c[O>>2]=c[(c[r>>2]|0)+20>>2];c[J>>2]=(c[G>>2]|0)==1&1;c[D>>2]=ta(c[D>>2]|0,c[v>>2]|0)|0;if((c[t>>2]|0)==1){c[q>>2]=Ca(c[r>>2]|0,c[s>>2]|0,0,c[u>>2]|0,c[y>>2]|0)|0;R=c[q>>2]|0;l=p;return R|0}if((c[O>>2]|0)>0)c[I>>2]=c[O>>2];do if((c[A>>2]|0)!=0&(c[w>>2]|0)!=0){if((c[I>>2]|0)==0?!((c[D>>2]&1|0)==0&(c[O>>2]|0)<0|(c[G>>2]|0)>1):0)break;Ie(c[A>>2]|0,c[w>>2]|0,(c[t>>2]<<2)+0|0)|0;c[w>>2]=c[A>>2]}while(0);c[M>>2]=0;while(1){if((c[M>>2]|0)>=(c[I>>2]|0))break;if(c[N>>2]|0)wa(c[s>>2]|0,c[t>>2]>>c[M>>2],1<<c[M>>2]);if(c[w>>2]|0)wa(c[w>>2]|0,c[t>>2]>>c[M>>2],1<<c[M>>2]);c[B>>2]=d[23948+(c[B>>2]&15)>>0]|0|(d[23948+(c[B>>2]>>4)>>0]|0)<<2;c[M>>2]=(c[M>>2]|0)+1}c[v>>2]=c[v>>2]>>c[I>>2];c[D>>2]=c[D>>2]<<c[I>>2];while(1){if(!((c[D>>2]&1|0)==0?(c[O>>2]|0)<0:0))break;if(c[N>>2]|0)wa(c[s>>2]|0,c[D>>2]|0,c[v>>2]|0);if(c[w>>2]|0)wa(c[w>>2]|0,c[D>>2]|0,c[v>>2]|0);c[B>>2]=c[B>>2]|c[B>>2]<<c[v>>2];c[v>>2]=c[v>>2]<<1;c[D>>2]=c[D>>2]>>1;c[H>>2]=(c[H>>2]|0)+1;c[O>>2]=(c[O>>2]|0)+1}c[G>>2]=c[v>>2];c[E>>2]=c[D>>2];if((c[G>>2]|0)>1){if(c[N>>2]|0)db(c[s>>2]|0,c[D>>2]>>c[I>>2],c[G>>2]<<c[I>>2],c[J>>2]|0);if(c[w>>2]|0)db(c[w>>2]|0,c[D>>2]>>c[I>>2],c[G>>2]<<c[I>>2],c[J>>2]|0)}c[K>>2]=eb(c[r>>2]|0,c[s>>2]|0,c[t>>2]|0,c[u>>2]|0,c[v>>2]|0,c[w>>2]|0,c[x>>2]|0,+g[z>>2],c[B>>2]|0)|0;if(c[L>>2]|0){if((c[G>>2]|0)>1)fb(c[s>>2]|0,c[D>>2]>>c[I>>2],c[G>>2]<<c[I>>2],c[J>>2]|0);c[D>>2]=c[E>>2];c[v>>2]=c[G>>2];c[M>>2]=0;while(1){if((c[M>>2]|0)>=(c[H>>2]|0))break;c[v>>2]=c[v>>2]>>1;c[D>>2]=c[D>>2]<<1;c[K>>2]=c[K>>2]|(c[K>>2]|0)>>>(c[v>>2]|0);wa(c[s>>2]|0,c[D>>2]|0,c[v>>2]|0);c[M>>2]=(c[M>>2]|0)+1}c[M>>2]=0;while(1){if((c[M>>2]|0)>=(c[I>>2]|0))break;c[K>>2]=d[23964+(c[K>>2]|0)>>0];wa(c[s>>2]|0,c[C>>2]>>c[M>>2],1<<c[M>>2]);c[M>>2]=(c[M>>2]|0)+1}c[v>>2]=c[v>>2]<<c[I>>2];a:do if(c[y>>2]|0){g[Q>>2]=+F(+(+(c[C>>2]|0)));c[P>>2]=0;while(1){if((c[P>>2]|0)>=(c[C>>2]|0))break a;g[(c[y>>2]|0)+(c[P>>2]<<2)>>2]=+g[Q>>2]*+g[(c[s>>2]|0)+(c[P>>2]<<2)>>2];c[P>>2]=(c[P>>2]|0)+1}}while(0);c[K>>2]=c[K>>2]&(1<<c[v>>2])-1}c[q>>2]=c[K>>2];R=c[q>>2]|0;l=p;return R|0}function Ba(a,b,d,e,f,h,i,j,k,m,n){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;h=h|0;i=i|0;j=j|0;k=k|0;m=m|0;n=n|0;var o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0;o=l;l=l+160|0;p=o+156|0;q=o+152|0;r=o+148|0;s=o+144|0;t=o+140|0;u=o+136|0;v=o+132|0;w=o+128|0;x=o+124|0;y=o+120|0;z=o+116|0;A=o+112|0;B=o+108|0;C=o+104|0;D=o+100|0;E=o+96|0;F=o+92|0;G=o+88|0;H=o+84|0;I=o+80|0;J=o+76|0;K=o+72|0;L=o+68|0;M=o+64|0;N=o+40|0;O=o+36|0;P=o+32|0;Q=o+28|0;R=o+24|0;S=o+20|0;T=o+16|0;U=o+12|0;V=o+8|0;W=o+4|0;X=o;c[q>>2]=a;c[r>>2]=b;c[s>>2]=d;c[t>>2]=e;c[u>>2]=f;c[v>>2]=h;c[w>>2]=i;c[x>>2]=j;c[y>>2]=k;c[z>>2]=m;c[A>>2]=n;c[B>>2]=0;c[C>>2]=0;c[D>>2]=0;g[E>>2]=0.0;g[F>>2]=0.0;c[G>>2]=0;c[H>>2]=((c[c[q>>2]>>2]|0)!=0^1)&1;c[P>>2]=c[c[q>>2]>>2];c[Q>>2]=c[(c[q>>2]|0)+24>>2];if((c[t>>2]|0)==1){c[p>>2]=Ca(c[q>>2]|0,c[r>>2]|0,c[s>>2]|0,c[u>>2]|0,c[y>>2]|0)|0;Y=c[p>>2]|0;l=o;return Y|0}c[O>>2]=c[A>>2];Da(c[q>>2]|0,N,c[r>>2]|0,c[s>>2]|0,c[t>>2]|0,u,c[v>>2]|0,c[v>>2]|0,c[x>>2]|0,1,A);c[D>>2]=c[N>>2];c[B>>2]=c[N+4>>2];c[C>>2]=c[N+8>>2];c[K>>2]=c[N+12>>2];c[L>>2]=c[N+16>>2];c[M>>2]=c[N+20>>2];g[E>>2]=+(c[B>>2]|0)*.000030517578125;g[F>>2]=+(c[C>>2]|0)*.000030517578125;do if((c[t>>2]|0)==2){c[S>>2]=0;c[I>>2]=c[u>>2];c[J>>2]=0;c[J>>2]=(c[L>>2]|0)!=0&(c[L>>2]|0)!=16384?8:0;c[I>>2]=(c[I>>2]|0)-(c[J>>2]|0);c[R>>2]=(c[L>>2]|0)>8192&1;C=(c[q>>2]|0)+28|0;c[C>>2]=(c[C>>2]|0)-((c[M>>2]|0)+(c[J>>2]|0));c[T>>2]=c[R>>2]|0?c[s>>2]|0:c[r>>2]|0;c[U>>2]=c[R>>2]|0?c[r>>2]|0:c[s>>2]|0;do if(c[J>>2]|0)if(c[P>>2]|0){c[S>>2]=+g[c[T>>2]>>2]*+g[(c[U>>2]|0)+4>>2]-+g[(c[T>>2]|0)+4>>2]*+g[c[U>>2]>>2]<0.0&1;Ea(c[Q>>2]|0,c[S>>2]|0,1);break}else{c[S>>2]=Fa(c[Q>>2]|0,1)|0;break}while(0);c[S>>2]=1-(c[S>>2]<<1);c[G>>2]=Aa(c[q>>2]|0,c[T>>2]|0,c[t>>2]|0,c[I>>2]|0,c[v>>2]|0,c[w>>2]|0,c[x>>2]|0,c[y>>2]|0,1.0,c[z>>2]|0,c[O>>2]|0)|0;g[c[U>>2]>>2]=+(0-(c[S>>2]|0)|0)*+g[(c[T>>2]|0)+4>>2];g[(c[U>>2]|0)+4>>2]=+(c[S>>2]|0)*+g[c[T>>2]>>2];if(c[H>>2]|0){g[c[r>>2]>>2]=+g[E>>2]*+g[c[r>>2]>>2];g[(c[r>>2]|0)+4>>2]=+g[E>>2]*+g[(c[r>>2]|0)+4>>2];g[c[s>>2]>>2]=+g[F>>2]*+g[c[s>>2]>>2];g[(c[s>>2]|0)+4>>2]=+g[F>>2]*+g[(c[s>>2]|0)+4>>2];g[V>>2]=+g[c[r>>2]>>2];g[c[r>>2]>>2]=+g[V>>2]-+g[c[s>>2]>>2];g[c[s>>2]>>2]=+g[V>>2]+ +g[c[s>>2]>>2];g[V>>2]=+g[(c[r>>2]|0)+4>>2];g[(c[r>>2]|0)+4>>2]=+g[V>>2]-+g[(c[s>>2]|0)+4>>2];g[(c[s>>2]|0)+4>>2]=+g[V>>2]+ +g[(c[s>>2]|0)+4>>2]}}else{C=c[u>>2]|0;if((c[u>>2]|0)<(((c[u>>2]|0)-(c[K>>2]|0)|0)/2|0|0))Z=C;else Z=(C-(c[K>>2]|0)|0)/2|0;if(0<=(Z|0)){C=c[u>>2]|0;if((c[u>>2]|0)<(((c[u>>2]|0)-(c[K>>2]|0)|0)/2|0|0))_=C;else _=(C-(c[K>>2]|0)|0)/2|0}else _=0;c[I>>2]=_;c[J>>2]=(c[u>>2]|0)-(c[I>>2]|0);C=(c[q>>2]|0)+28|0;c[C>>2]=(c[C>>2]|0)-(c[M>>2]|0);c[W>>2]=c[(c[q>>2]|0)+28>>2];C=c[q>>2]|0;if((c[I>>2]|0)>=(c[J>>2]|0)){c[G>>2]=Aa(C,c[r>>2]|0,c[t>>2]|0,c[I>>2]|0,c[v>>2]|0,c[w>>2]|0,c[x>>2]|0,c[y>>2]|0,1.0,c[z>>2]|0,c[A>>2]|0)|0;c[W>>2]=(c[I>>2]|0)-((c[W>>2]|0)-(c[(c[q>>2]|0)+28>>2]|0));if((c[W>>2]|0)>24&(c[L>>2]|0)!=0)c[J>>2]=(c[J>>2]|0)+((c[W>>2]|0)-24);B=Aa(c[q>>2]|0,c[s>>2]|0,c[t>>2]|0,c[J>>2]|0,c[v>>2]|0,0,c[x>>2]|0,0,+g[F>>2],0,c[A>>2]>>c[v>>2])|0;c[G>>2]=c[G>>2]|B;break}else{c[G>>2]=Aa(C,c[s>>2]|0,c[t>>2]|0,c[J>>2]|0,c[v>>2]|0,0,c[x>>2]|0,0,+g[F>>2],0,c[A>>2]>>c[v>>2])|0;c[W>>2]=(c[J>>2]|0)-((c[W>>2]|0)-(c[(c[q>>2]|0)+28>>2]|0));if((c[W>>2]|0)>24&(c[L>>2]|0)!=16384)c[I>>2]=(c[I>>2]|0)+((c[W>>2]|0)-24);C=Aa(c[q>>2]|0,c[r>>2]|0,c[t>>2]|0,c[I>>2]|0,c[v>>2]|0,c[w>>2]|0,c[x>>2]|0,c[y>>2]|0,1.0,c[z>>2]|0,c[A>>2]|0)|0;c[G>>2]=c[G>>2]|C;break}}while(0);a:do if(c[H>>2]|0){if((c[t>>2]|0)!=2)Ga(c[r>>2]|0,c[s>>2]|0,+g[E>>2],c[t>>2]|0);if(c[D>>2]|0){c[X>>2]=0;while(1){if((c[X>>2]|0)>=(c[t>>2]|0))break a;g[(c[s>>2]|0)+(c[X>>2]<<2)>>2]=-+g[(c[s>>2]|0)+(c[X>>2]<<2)>>2];c[X>>2]=(c[X>>2]|0)+1}}}while(0);c[p>>2]=c[G>>2];Y=c[p>>2]|0;l=o;return Y|0}function Ca(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0;h=l;l=l+48|0;i=h+44|0;j=h+40|0;k=h+36|0;m=h+32|0;n=h+28|0;o=h+24|0;p=h+20|0;q=h+16|0;r=h+12|0;s=h+8|0;t=h+4|0;u=h;c[i>>2]=a;c[j>>2]=b;c[k>>2]=d;c[m>>2]=e;c[n>>2]=f;c[o>>2]=((c[c[i>>2]>>2]|0)!=0^1)&1;c[r>>2]=c[j>>2];c[s>>2]=c[c[i>>2]>>2];c[t>>2]=c[(c[i>>2]|0)+24>>2];c[q>>2]=(c[k>>2]|0)!=0&1;c[p>>2]=0;do{c[u>>2]=0;if((c[(c[i>>2]|0)+28>>2]|0)>=8){if(c[s>>2]|0){c[u>>2]=+g[c[r>>2]>>2]<0.0&1;Ea(c[t>>2]|0,c[u>>2]|0,1)}else c[u>>2]=Fa(c[t>>2]|0,1)|0;f=(c[i>>2]|0)+28|0;c[f>>2]=(c[f>>2]|0)-8;c[m>>2]=(c[m>>2]|0)-8}if(c[o>>2]|0)g[c[r>>2]>>2]=c[u>>2]|0?-1.0:1.0;c[r>>2]=c[k>>2];f=(c[p>>2]|0)+1|0;c[p>>2]=f}while((f|0)<(1+(c[q>>2]|0)|0));if(!(c[n>>2]|0)){l=h;return 1}g[c[n>>2]>>2]=+g[c[j>>2]>>2];l=h;return 1}function Da(a,d,e,f,h,i,j,k,m,n,o){a=a|0;d=d|0;e=e|0;f=f|0;h=h|0;i=i|0;j=j|0;k=k|0;m=m|0;n=n|0;o=o|0;var p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,$=0,aa=0,ba=0,ca=0,da=0,ea=0,fa=0,ga=0,ha=0,ia=0,ja=0,ka=0,la=0,ma=0,na=0,oa=0,pa=0,qa=0,ra=0,sa=0,ua=0,va=0,wa=0,xa=0,za=0,Aa=0;p=l;l=l+160|0;q=p+148|0;r=p+144|0;s=p+140|0;t=p+136|0;u=p+132|0;v=p+128|0;w=p+124|0;x=p+120|0;y=p+116|0;z=p+112|0;A=p+108|0;B=p+104|0;C=p+100|0;D=p+96|0;E=p+92|0;F=p+88|0;G=p+84|0;H=p+80|0;I=p+76|0;J=p+72|0;K=p+68|0;L=p+64|0;M=p+60|0;N=p+56|0;O=p+52|0;P=p+48|0;Q=p+44|0;S=p+40|0;T=p+36|0;U=p+32|0;V=p+28|0;W=p+24|0;X=p+20|0;Y=p+16|0;Z=p+12|0;_=p+8|0;$=p+4|0;aa=p;c[q>>2]=a;c[r>>2]=d;c[s>>2]=e;c[t>>2]=f;c[u>>2]=h;c[v>>2]=i;c[w>>2]=j;c[x>>2]=k;c[y>>2]=m;c[z>>2]=n;c[A>>2]=o;c[C>>2]=0;c[K>>2]=0;c[L>>2]=c[c[q>>2]>>2];c[M>>2]=c[(c[q>>2]|0)+4>>2];c[N>>2]=c[(c[q>>2]|0)+8>>2];c[O>>2]=c[(c[q>>2]|0)+12>>2];c[P>>2]=c[(c[q>>2]|0)+24>>2];c[Q>>2]=c[(c[q>>2]|0)+32>>2];c[H>>2]=(b[(c[(c[M>>2]|0)+56>>2]|0)+(c[N>>2]<<1)>>1]|0)+(c[y>>2]<<3);c[I>>2]=(c[H>>2]>>1)-((c[z>>2]|0?(c[u>>2]|0)==2:0)?16:4);c[B>>2]=Ka(c[u>>2]|0,c[c[v>>2]>>2]|0,c[I>>2]|0,c[H>>2]|0,c[z>>2]|0)|0;if(c[z>>2]|0?(c[N>>2]|0)>=(c[O>>2]|0):0)c[B>>2]=1;if(c[L>>2]|0)c[C>>2]=La(c[s>>2]|0,c[t>>2]|0,c[z>>2]|0,c[u>>2]|0)|0;c[J>>2]=ya(c[P>>2]|0)|0;do if((c[B>>2]|0)!=1){if(c[L>>2]|0)c[C>>2]=(R(c[C>>2]|0,c[B>>2]|0)|0)+8192>>14;do if((c[z>>2]|0)!=0&(c[u>>2]|0)>2){c[S>>2]=3;c[T>>2]=c[C>>2];c[U>>2]=(c[B>>2]|0)/2|0;O=R(c[S>>2]|0,(c[U>>2]|0)+1|0)|0;c[V>>2]=O+(c[U>>2]|0);O=c[P>>2]|0;if(c[L>>2]|0){if((c[T>>2]|0)<=(c[U>>2]|0))ba=R(c[S>>2]|0,c[T>>2]|0)|0;else ba=(c[T>>2]|0)-1-(c[U>>2]|0)+(R((c[U>>2]|0)+1|0,c[S>>2]|0)|0)|0;if((c[T>>2]|0)<=(c[U>>2]|0))ca=R(c[S>>2]|0,(c[T>>2]|0)+1|0)|0;else ca=(c[T>>2]|0)-(c[U>>2]|0)+(R((c[U>>2]|0)+1|0,c[S>>2]|0)|0)|0;Ma(O,ba,ca,c[V>>2]|0);break}c[W>>2]=Na(O,c[V>>2]|0)|0;if((c[W>>2]|0)<(R((c[U>>2]|0)+1|0,c[S>>2]|0)|0))c[T>>2]=(c[W>>2]|0)/(c[S>>2]|0)|0;else c[T>>2]=(c[U>>2]|0)+1+((c[W>>2]|0)-(R((c[U>>2]|0)+1|0,c[S>>2]|0)|0));if((c[T>>2]|0)<=(c[U>>2]|0))da=R(c[S>>2]|0,c[T>>2]|0)|0;else da=(c[T>>2]|0)-1-(c[U>>2]|0)+(R((c[U>>2]|0)+1|0,c[S>>2]|0)|0)|0;if((c[T>>2]|0)<=(c[U>>2]|0))ea=R(c[S>>2]|0,(c[T>>2]|0)+1|0)|0;else ea=(c[T>>2]|0)-(c[U>>2]|0)+(R((c[U>>2]|0)+1|0,c[S>>2]|0)|0)|0;Oa(c[P>>2]|0,da,ea,c[V>>2]|0);c[C>>2]=c[T>>2]}else{if((c[x>>2]|0)>1|(c[z>>2]|0)!=0){O=c[P>>2]|0;if(c[L>>2]|0){Pa(O,c[C>>2]|0,(c[B>>2]|0)+1|0);break}else{c[C>>2]=Qa(O,(c[B>>2]|0)+1|0)|0;break}}c[X>>2]=1;c[Y>>2]=R((c[B>>2]>>1)+1|0,(c[B>>2]>>1)+1|0)|0;if(!(c[L>>2]|0)){c[_>>2]=0;c[$>>2]=Na(c[P>>2]|0,c[Y>>2]|0)|0;if((c[$>>2]|0)<((R(c[B>>2]>>1,(c[B>>2]>>1)+1|0)|0)>>1|0)){c[C>>2]=((Ra((c[$>>2]<<3)+1|0)|0)-1|0)>>>1;c[X>>2]=(c[C>>2]|0)+1;c[_>>2]=(R(c[C>>2]|0,(c[C>>2]|0)+1|0)|0)>>1}else{O=(c[B>>2]|0)+1<<1;c[C>>2]=(O-(Ra(((c[Y>>2]|0)-(c[$>>2]|0)-1<<3)+1|0)|0)|0)>>>1;c[X>>2]=(c[B>>2]|0)+1-(c[C>>2]|0);c[_>>2]=(c[Y>>2]|0)-((R((c[B>>2]|0)+1-(c[C>>2]|0)|0,(c[B>>2]|0)+2-(c[C>>2]|0)|0)|0)>>1)}Oa(c[P>>2]|0,c[_>>2]|0,(c[_>>2]|0)+(c[X>>2]|0)|0,c[Y>>2]|0);break}if((c[C>>2]|0)<=(c[B>>2]>>1|0))fa=(c[C>>2]|0)+1|0;else fa=(c[B>>2]|0)+1-(c[C>>2]|0)|0;c[X>>2]=fa;if((c[C>>2]|0)<=(c[B>>2]>>1|0))ga=(R(c[C>>2]|0,(c[C>>2]|0)+1|0)|0)>>1;else ga=(c[Y>>2]|0)-((R((c[B>>2]|0)+1-(c[C>>2]|0)|0,(c[B>>2]|0)+2-(c[C>>2]|0)|0)|0)>>1)|0;c[Z>>2]=ga;Ma(c[P>>2]|0,c[Z>>2]|0,(c[Z>>2]|0)+(c[X>>2]|0)|0,c[Y>>2]|0)}while(0);c[C>>2]=ta(c[C>>2]<<14,c[B>>2]|0)|0;if((c[L>>2]|0)!=0&(c[z>>2]|0)!=0)if(!(c[C>>2]|0)){Sa(c[M>>2]|0,c[s>>2]|0,c[t>>2]|0,c[Q>>2]|0,c[N>>2]|0,c[u>>2]|0);break}else{Ta(c[s>>2]|0,c[t>>2]|0,c[u>>2]|0);break}}else if(c[z>>2]|0){if(c[L>>2]|0){c[K>>2]=(c[C>>2]|0)>8192&1;a:do if(c[K>>2]|0){c[aa>>2]=0;while(1){if((c[aa>>2]|0)>=(c[u>>2]|0))break a;g[(c[t>>2]|0)+(c[aa>>2]<<2)>>2]=-+g[(c[t>>2]|0)+(c[aa>>2]<<2)>>2];c[aa>>2]=(c[aa>>2]|0)+1}}while(0);Sa(c[M>>2]|0,c[s>>2]|0,c[t>>2]|0,c[Q>>2]|0,c[N>>2]|0,c[u>>2]|0)}do if((c[c[v>>2]>>2]|0)>16?(c[(c[q>>2]|0)+28>>2]|0)>16:0){O=c[P>>2]|0;if(c[L>>2]|0){Ua(O,c[K>>2]|0,2);break}else{c[K>>2]=Va(O,2)|0;break}}else ha=60;while(0);if((ha|0)==60)c[K>>2]=0;c[C>>2]=0}while(0);ha=ya(c[P>>2]|0)|0;c[G>>2]=ha-(c[J>>2]|0);J=c[v>>2]|0;c[J>>2]=(c[J>>2]|0)-(c[G>>2]|0);if(!(c[C>>2]|0)){c[E>>2]=32767;c[F>>2]=0;J=c[A>>2]|0;c[J>>2]=c[J>>2]&(1<<c[w>>2])-1;c[D>>2]=-16384;ia=c[K>>2]|0;ja=c[r>>2]|0;c[ja>>2]=ia;ka=c[E>>2]|0;la=c[r>>2]|0;ma=la+4|0;c[ma>>2]=ka;na=c[F>>2]|0;oa=c[r>>2]|0;pa=oa+8|0;c[pa>>2]=na;qa=c[D>>2]|0;ra=c[r>>2]|0;sa=ra+12|0;c[sa>>2]=qa;ua=c[C>>2]|0;va=c[r>>2]|0;wa=va+16|0;c[wa>>2]=ua;xa=c[G>>2]|0;za=c[r>>2]|0;Aa=za+20|0;c[Aa>>2]=xa;l=p;return}if((c[C>>2]|0)==16384){c[E>>2]=0;c[F>>2]=32767;J=c[A>>2]|0;c[J>>2]=c[J>>2]&(1<<c[w>>2])-1<<c[w>>2];c[D>>2]=16384;ia=c[K>>2]|0;ja=c[r>>2]|0;c[ja>>2]=ia;ka=c[E>>2]|0;la=c[r>>2]|0;ma=la+4|0;c[ma>>2]=ka;na=c[F>>2]|0;oa=c[r>>2]|0;pa=oa+8|0;c[pa>>2]=na;qa=c[D>>2]|0;ra=c[r>>2]|0;sa=ra+12|0;c[sa>>2]=qa;ua=c[C>>2]|0;va=c[r>>2]|0;wa=va+16|0;c[wa>>2]=ua;xa=c[G>>2]|0;za=c[r>>2]|0;Aa=za+20|0;c[Aa>>2]=xa;l=p;return}else{c[E>>2]=(Wa(c[C>>2]&65535)|0)<<16>>16;c[F>>2]=(Wa(16384-(c[C>>2]|0)&65535)|0)<<16>>16;w=((c[u>>2]|0)-1<<7&65535)<<16>>16;c[D>>2]=16384+(R(w,((Xa(c[F>>2]|0,c[E>>2]|0)|0)&65535)<<16>>16)|0)>>15;ia=c[K>>2]|0;ja=c[r>>2]|0;c[ja>>2]=ia;ka=c[E>>2]|0;la=c[r>>2]|0;ma=la+4|0;c[ma>>2]=ka;na=c[F>>2]|0;oa=c[r>>2]|0;pa=oa+8|0;c[pa>>2]=na;qa=c[D>>2]|0;ra=c[r>>2]|0;sa=ra+12|0;c[sa>>2]=qa;ua=c[C>>2]|0;va=c[r>>2]|0;wa=va+16|0;c[wa>>2]=ua;xa=c[G>>2]|0;za=c[r>>2]|0;Aa=za+20|0;c[Aa>>2]=xa;l=p;return}}function Ea(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0;e=l;l=l+32|0;f=e+16|0;g=e+12|0;h=e+8|0;i=e+4|0;j=e;c[f>>2]=a;c[g>>2]=b;c[h>>2]=d;c[i>>2]=c[(c[f>>2]|0)+12>>2];c[j>>2]=c[(c[f>>2]|0)+16>>2];if(((c[j>>2]|0)+(c[h>>2]|0)|0)>>>0>32)do{d=Ja(c[f>>2]|0,c[i>>2]&255)|0;b=(c[f>>2]|0)+44|0;c[b>>2]=c[b>>2]|d;c[i>>2]=(c[i>>2]|0)>>>8;c[j>>2]=(c[j>>2]|0)-8}while((c[j>>2]|0)>=8);c[i>>2]=c[i>>2]|c[g>>2]<<c[j>>2];c[j>>2]=(c[j>>2]|0)+(c[h>>2]|0);c[(c[f>>2]|0)+12>>2]=c[i>>2];c[(c[f>>2]|0)+16>>2]=c[j>>2];j=(c[f>>2]|0)+20|0;c[j>>2]=(c[j>>2]|0)+(c[h>>2]|0);l=e;return}function Fa(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0;d=l;l=l+32|0;e=d+16|0;f=d+12|0;g=d+8|0;h=d+4|0;i=d;c[e>>2]=a;c[f>>2]=b;c[g>>2]=c[(c[e>>2]|0)+12>>2];c[h>>2]=c[(c[e>>2]|0)+16>>2];if((c[h>>2]|0)>>>0<(c[f>>2]|0)>>>0)do{b=Ia(c[e>>2]|0)|0;c[g>>2]=c[g>>2]|b<<c[h>>2];c[h>>2]=(c[h>>2]|0)+8}while((c[h>>2]|0)<=24);c[i>>2]=c[g>>2]&(1<<c[f>>2])-1;c[g>>2]=(c[g>>2]|0)>>>(c[f>>2]|0);c[h>>2]=(c[h>>2]|0)-(c[f>>2]|0);c[(c[e>>2]|0)+12>>2]=c[g>>2];c[(c[e>>2]|0)+16>>2]=c[h>>2];h=(c[e>>2]|0)+20|0;c[h>>2]=(c[h>>2]|0)+(c[f>>2]|0);l=d;return c[i>>2]|0}function Ga(a,b,d,e){a=a|0;b=b|0;d=+d;e=e|0;var f=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0;f=l;l=l+64|0;h=f+56|0;i=f+52|0;j=f+48|0;k=f+44|0;m=f+40|0;n=f+36|0;o=f+32|0;p=f+28|0;q=f+24|0;r=f+20|0;s=f+16|0;t=f+12|0;u=f+8|0;v=f+4|0;w=f;c[h>>2]=a;c[i>>2]=b;g[j>>2]=d;c[k>>2]=e;g[n>>2]=0.0;g[o>>2]=0.0;Ha(c[i>>2]|0,c[h>>2]|0,c[i>>2]|0,c[k>>2]|0,n,o);g[n>>2]=+g[j>>2]*+g[n>>2];g[r>>2]=+g[j>>2];g[p>>2]=+g[r>>2]*+g[r>>2]+ +g[o>>2]-+g[n>>2]*2.0;g[q>>2]=+g[r>>2]*+g[r>>2]+ +g[o>>2]+ +g[n>>2]*2.0;if(+g[q>>2]<6.000000284984708e-04|+g[p>>2]<6.000000284984708e-04){Ie(c[i>>2]|0,c[h>>2]|0,(c[k>>2]<<2)+0|0)|0;l=f;return}g[s>>2]=+g[p>>2];g[t>>2]=1.0/+F(+(+g[s>>2]));g[s>>2]=+g[q>>2];g[u>>2]=1.0/+F(+(+g[s>>2]));c[m>>2]=0;while(1){if((c[m>>2]|0)>=(c[k>>2]|0))break;g[w>>2]=+g[j>>2]*+g[(c[h>>2]|0)+(c[m>>2]<<2)>>2];g[v>>2]=+g[(c[i>>2]|0)+(c[m>>2]<<2)>>2];g[(c[h>>2]|0)+(c[m>>2]<<2)>>2]=+g[t>>2]*(+g[w>>2]-+g[v>>2]);g[(c[i>>2]|0)+(c[m>>2]<<2)>>2]=+g[u>>2]*(+g[w>>2]+ +g[v>>2]);c[m>>2]=(c[m>>2]|0)+1}l=f;return}function Ha(a,b,d,e,f,h){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;h=h|0;var i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0.0;i=l;l=l+48|0;j=i+32|0;k=i+28|0;m=i+24|0;n=i+20|0;o=i+16|0;p=i+12|0;q=i+8|0;r=i+4|0;s=i;c[j>>2]=a;c[k>>2]=b;c[m>>2]=d;c[n>>2]=e;c[o>>2]=f;c[p>>2]=h;g[r>>2]=0.0;g[s>>2]=0.0;c[q>>2]=0;while(1){t=+g[r>>2];if((c[q>>2]|0)>=(c[n>>2]|0))break;g[r>>2]=t+ +g[(c[j>>2]|0)+(c[q>>2]<<2)>>2]*+g[(c[k>>2]|0)+(c[q>>2]<<2)>>2];g[s>>2]=+g[s>>2]+ +g[(c[j>>2]|0)+(c[q>>2]<<2)>>2]*+g[(c[m>>2]|0)+(c[q>>2]<<2)>>2];c[q>>2]=(c[q>>2]|0)+1}g[c[o>>2]>>2]=t;g[c[p>>2]>>2]=+g[s>>2];l=i;return}function Ia(a){a=a|0;var b=0,e=0,f=0,g=0,h=0;b=l;l=l+16|0;e=b;c[e>>2]=a;if((c[(c[e>>2]|0)+8>>2]|0)>>>0>=(c[(c[e>>2]|0)+4>>2]|0)>>>0){f=0;l=b;return f|0}a=c[c[e>>2]>>2]|0;g=c[(c[e>>2]|0)+4>>2]|0;h=(c[e>>2]|0)+8|0;e=(c[h>>2]|0)+1|0;c[h>>2]=e;f=d[a+(g-e)>>0]|0;l=b;return f|0}function Ja(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0;e=l;l=l+16|0;f=e+8|0;g=e+4|0;h=e;c[g>>2]=b;c[h>>2]=d;if(((c[(c[g>>2]|0)+24>>2]|0)+(c[(c[g>>2]|0)+8>>2]|0)|0)>>>0>=(c[(c[g>>2]|0)+4>>2]|0)>>>0){c[f>>2]=-1;i=c[f>>2]|0;l=e;return i|0}else{d=c[h>>2]&255;h=c[c[g>>2]>>2]|0;b=c[(c[g>>2]|0)+4>>2]|0;j=(c[g>>2]|0)+8|0;g=(c[j>>2]|0)+1|0;c[j>>2]=g;a[h+(b-g)>>0]=d;c[f>>2]=0;i=c[f>>2]|0;l=e;return i|0}return 0}function Ka(a,d,e,f,g){a=a|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;h=l;l=l+32|0;i=h+28|0;j=h+24|0;k=h+20|0;m=h+16|0;n=h+12|0;o=h+8|0;p=h+4|0;q=h;c[i>>2]=a;c[j>>2]=d;c[k>>2]=e;c[m>>2]=f;c[n>>2]=g;c[q>>2]=(c[i>>2]<<1)-1;if((c[n>>2]|0)!=0&(c[i>>2]|0)==2)c[q>>2]=(c[q>>2]|0)+-1;i=(c[j>>2]|0)+(R(c[q>>2]|0,c[k>>2]|0)|0)|0;c[p>>2]=za(i,c[q>>2]|0)|0;if(((c[j>>2]|0)-(c[m>>2]|0)-32|0)<(c[p>>2]|0))r=(c[j>>2]|0)-(c[m>>2]|0)-32|0;else r=c[p>>2]|0;c[p>>2]=r;c[p>>2]=64<(c[p>>2]|0)?64:c[p>>2]|0;if((c[p>>2]|0)<4){c[o>>2]=1;s=c[o>>2]|0;l=h;return s|0}else{c[o>>2]=b[18390+((c[p>>2]&7)<<1)>>1]>>14-(c[p>>2]>>3);c[o>>2]=(c[o>>2]|0)+1>>1<<1;s=c[o>>2]|0;l=h;return s|0}return 0}function La(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0.0;f=l;l=l+48|0;h=f+44|0;i=f+40|0;j=f+36|0;k=f+32|0;m=f+28|0;n=f+24|0;o=f+20|0;p=f+16|0;q=f+12|0;r=f+8|0;s=f+4|0;t=f;c[h>>2]=a;c[i>>2]=b;c[j>>2]=d;c[k>>2]=e;g[r>>2]=1.0000000036274937e-15;g[q>>2]=1.0000000036274937e-15;a:do if(c[j>>2]|0){c[m>>2]=0;while(1){if((c[m>>2]|0)>=(c[k>>2]|0))break a;g[s>>2]=+g[(c[h>>2]|0)+(c[m>>2]<<2)>>2]+ +g[(c[i>>2]|0)+(c[m>>2]<<2)>>2];g[t>>2]=+g[(c[h>>2]|0)+(c[m>>2]<<2)>>2]-+g[(c[i>>2]|0)+(c[m>>2]<<2)>>2];g[q>>2]=+g[q>>2]+ +g[s>>2]*+g[s>>2];g[r>>2]=+g[r>>2]+ +g[t>>2]*+g[t>>2];c[m>>2]=(c[m>>2]|0)+1}}else{u=+va(c[h>>2]|0,c[h>>2]|0,c[k>>2]|0);g[q>>2]=+g[q>>2]+u;u=+va(c[i>>2]|0,c[i>>2]|0,c[k>>2]|0);g[r>>2]=+g[r>>2]+u}while(0);g[o>>2]=+F(+(+g[q>>2]));g[p>>2]=+F(+(+g[r>>2]));c[n>>2]=~~+D(+(+N(+(+g[p>>2]),+(+g[o>>2]))*10430.3818359375+.5));l=f;return c[n>>2]|0}function Ma(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,m=0;f=l;l=l+32|0;g=f+16|0;h=f+12|0;i=f+8|0;j=f+4|0;k=f;c[g>>2]=a;c[h>>2]=b;c[i>>2]=d;c[j>>2]=e;c[k>>2]=cb(c[(c[g>>2]|0)+28>>2]|0,c[j>>2]|0)|0;if((c[h>>2]|0)>>>0>0){e=(c[(c[g>>2]|0)+28>>2]|0)-(R(c[k>>2]|0,(c[j>>2]|0)-(c[h>>2]|0)|0)|0)|0;d=(c[g>>2]|0)+32|0;c[d>>2]=(c[d>>2]|0)+e;e=R(c[k>>2]|0,(c[i>>2]|0)-(c[h>>2]|0)|0)|0;c[(c[g>>2]|0)+28>>2]=e;m=c[g>>2]|0;_a(m);l=f;return}else{e=R(c[k>>2]|0,(c[j>>2]|0)-(c[i>>2]|0)|0)|0;i=(c[g>>2]|0)+28|0;c[i>>2]=(c[i>>2]|0)-e;m=c[g>>2]|0;_a(m);l=f;return}}function Na(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;d=l;l=l+16|0;e=d+8|0;f=d+4|0;g=d;c[e>>2]=a;c[f>>2]=b;b=bb(c[(c[e>>2]|0)+28>>2]|0,c[f>>2]|0)|0;c[(c[e>>2]|0)+36>>2]=b;c[g>>2]=((c[(c[e>>2]|0)+32>>2]|0)>>>0)/((c[(c[e>>2]|0)+36>>2]|0)>>>0)|0;l=d;return (c[f>>2]|0)-((c[g>>2]|0)+1+((c[f>>2]|0)-((c[g>>2]|0)+1)&0-((c[f>>2]|0)>>>0<((c[g>>2]|0)+1|0)>>>0&1)))|0}function Oa(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0;f=l;l=l+32|0;g=f+16|0;h=f+12|0;i=f+8|0;j=f+4|0;k=f;c[g>>2]=a;c[h>>2]=b;c[i>>2]=d;c[j>>2]=e;c[k>>2]=R(c[(c[g>>2]|0)+36>>2]|0,(c[j>>2]|0)-(c[i>>2]|0)|0)|0;j=(c[g>>2]|0)+32|0;c[j>>2]=(c[j>>2]|0)-(c[k>>2]|0);j=c[g>>2]|0;if((c[h>>2]|0)>>>0>0){m=R(c[j+36>>2]|0,(c[i>>2]|0)-(c[h>>2]|0)|0)|0;n=c[g>>2]|0;o=n+28|0;c[o>>2]=m;p=c[g>>2]|0;Ya(p);l=f;return}else{m=(c[j+28>>2]|0)-(c[k>>2]|0)|0;n=c[g>>2]|0;o=n+28|0;c[o>>2]=m;p=c[g>>2]|0;Ya(p);l=f;return}}function Pa(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0;e=l;l=l+32|0;f=e+20|0;g=e+16|0;h=e+12|0;i=e+8|0;j=e+4|0;k=e;c[f>>2]=a;c[g>>2]=b;c[h>>2]=d;c[h>>2]=(c[h>>2]|0)+-1;c[k>>2]=32-(U(c[h>>2]|0)|0);if((c[k>>2]|0)>8){c[k>>2]=(c[k>>2]|0)-8;c[i>>2]=((c[h>>2]|0)>>>(c[k>>2]|0))+1;c[j>>2]=(c[g>>2]|0)>>>(c[k>>2]|0);Ma(c[f>>2]|0,c[j>>2]|0,(c[j>>2]|0)+1|0,c[i>>2]|0);Ea(c[f>>2]|0,c[g>>2]&(1<<c[k>>2])-1,c[k>>2]|0);l=e;return}else{Ma(c[f>>2]|0,c[g>>2]|0,(c[g>>2]|0)+1|0,(c[h>>2]|0)+1|0);l=e;return}}function Qa(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,m=0;d=l;l=l+32|0;e=d+24|0;f=d+20|0;g=d+16|0;h=d+12|0;i=d+8|0;j=d+4|0;k=d;c[f>>2]=a;c[g>>2]=b;c[g>>2]=(c[g>>2]|0)+-1;c[j>>2]=32-(U(c[g>>2]|0)|0);if((c[j>>2]|0)<=8){c[g>>2]=(c[g>>2]|0)+1;c[i>>2]=Na(c[f>>2]|0,c[g>>2]|0)|0;Oa(c[f>>2]|0,c[i>>2]|0,(c[i>>2]|0)+1|0,c[g>>2]|0);c[e>>2]=c[i>>2];m=c[e>>2]|0;l=d;return m|0}c[j>>2]=(c[j>>2]|0)-8;c[h>>2]=((c[g>>2]|0)>>>(c[j>>2]|0))+1;c[i>>2]=Na(c[f>>2]|0,c[h>>2]|0)|0;Oa(c[f>>2]|0,c[i>>2]|0,(c[i>>2]|0)+1|0,c[h>>2]|0);h=c[i>>2]<<c[j>>2];c[k>>2]=h|(Fa(c[f>>2]|0,c[j>>2]|0)|0);if((c[k>>2]|0)>>>0<=(c[g>>2]|0)>>>0){c[e>>2]=c[k>>2];m=c[e>>2]|0;l=d;return m|0}else{c[(c[f>>2]|0)+44>>2]=1;c[e>>2]=c[g>>2];m=c[e>>2]|0;l=d;return m|0}return 0}function Ra(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0;b=l;l=l+32|0;d=b+16|0;e=b+12|0;f=b+8|0;g=b+4|0;h=b;c[d>>2]=a;c[f>>2]=0;c[g>>2]=32-(U(c[d>>2]|0)|0)-1>>1;c[e>>2]=1<<c[g>>2];do{c[h>>2]=(c[f>>2]<<1)+(c[e>>2]|0)<<c[g>>2];if((c[h>>2]|0)>>>0<=(c[d>>2]|0)>>>0){c[f>>2]=(c[f>>2]|0)+(c[e>>2]|0);c[d>>2]=(c[d>>2]|0)-(c[h>>2]|0)}c[e>>2]=(c[e>>2]|0)>>>1;c[g>>2]=(c[g>>2]|0)+-1}while((c[g>>2]|0)>=0);l=b;return c[f>>2]|0}function Sa(a,b,d,e,f,h){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;h=h|0;var i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0;i=l;l=l+64|0;j=i+56|0;k=i+52|0;m=i+48|0;n=i+44|0;o=i+40|0;p=i+36|0;q=i+32|0;r=i+28|0;s=i+24|0;t=i+20|0;u=i+16|0;v=i+12|0;w=i+8|0;x=i+4|0;y=i;c[j>>2]=a;c[k>>2]=b;c[m>>2]=d;c[n>>2]=e;c[o>>2]=f;c[p>>2]=h;c[q>>2]=c[o>>2];g[u>>2]=+g[(c[n>>2]|0)+(c[q>>2]<<2)>>2];g[v>>2]=+g[(c[n>>2]|0)+((c[q>>2]|0)+(c[(c[j>>2]|0)+8>>2]|0)<<2)>>2];g[w>>2]=+F(+(+g[u>>2]*+g[u>>2]+1.0000000036274937e-15+ +g[v>>2]*+g[v>>2]))+1.0000000036274937e-15;g[s>>2]=+g[u>>2]/+g[w>>2];g[t>>2]=+g[v>>2]/+g[w>>2];c[r>>2]=0;while(1){if((c[r>>2]|0)>=(c[p>>2]|0))break;g[y>>2]=+g[(c[k>>2]|0)+(c[r>>2]<<2)>>2];g[x>>2]=+g[(c[m>>2]|0)+(c[r>>2]<<2)>>2];g[(c[k>>2]|0)+(c[r>>2]<<2)>>2]=+g[s>>2]*+g[y>>2]+ +g[t>>2]*+g[x>>2];c[r>>2]=(c[r>>2]|0)+1}l=i;return}function Ta(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,h=0,i=0,j=0,k=0,m=0;e=l;l=l+32|0;f=e+20|0;h=e+16|0;i=e+12|0;j=e+8|0;k=e+4|0;m=e;c[f>>2]=a;c[h>>2]=b;c[i>>2]=d;c[j>>2]=0;while(1){if((c[j>>2]|0)>=(c[i>>2]|0))break;g[m>>2]=+g[(c[f>>2]|0)+(c[j>>2]<<2)>>2]*.7071067690849304;g[k>>2]=+g[(c[h>>2]|0)+(c[j>>2]<<2)>>2]*.7071067690849304;g[(c[f>>2]|0)+(c[j>>2]<<2)>>2]=+g[m>>2]+ +g[k>>2];g[(c[h>>2]|0)+(c[j>>2]<<2)>>2]=+g[k>>2]-+g[m>>2];c[j>>2]=(c[j>>2]|0)+1}l=e;return}function Ua(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0;e=l;l=l+32|0;f=e+20|0;g=e+16|0;h=e+12|0;i=e+8|0;j=e+4|0;k=e;c[f>>2]=a;c[g>>2]=b;c[h>>2]=d;c[i>>2]=c[(c[f>>2]|0)+28>>2];c[k>>2]=c[(c[f>>2]|0)+32>>2];c[j>>2]=(c[i>>2]|0)>>>(c[h>>2]|0);c[i>>2]=(c[i>>2]|0)-(c[j>>2]|0);if(c[g>>2]|0)c[(c[f>>2]|0)+32>>2]=(c[k>>2]|0)+(c[i>>2]|0);c[(c[f>>2]|0)+28>>2]=c[g>>2]|0?c[j>>2]|0:c[i>>2]|0;_a(c[f>>2]|0);l=e;return}function Va(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0;d=l;l=l+32|0;e=d+20|0;f=d+16|0;g=d+12|0;h=d+8|0;i=d+4|0;j=d;c[e>>2]=a;c[f>>2]=b;c[g>>2]=c[(c[e>>2]|0)+28>>2];c[h>>2]=c[(c[e>>2]|0)+32>>2];c[i>>2]=(c[g>>2]|0)>>>(c[f>>2]|0);c[j>>2]=(c[h>>2]|0)>>>0<(c[i>>2]|0)>>>0&1;if(!(c[j>>2]|0))c[(c[e>>2]|0)+32>>2]=(c[h>>2]|0)-(c[i>>2]|0);if(c[j>>2]|0){k=c[i>>2]|0;m=c[e>>2]|0;n=m+28|0;c[n>>2]=k;o=c[e>>2]|0;Ya(o);p=c[j>>2]|0;l=d;return p|0}else{k=(c[g>>2]|0)-(c[i>>2]|0)|0;m=c[e>>2]|0;n=m+28|0;c[n>>2]=k;o=c[e>>2]|0;Ya(o);p=c[j>>2]|0;l=d;return p|0}return 0}function Wa(a){a=a|0;var d=0,e=0,f=0,g=0;d=l;l=l+16|0;e=d+6|0;f=d;g=d+4|0;b[e>>1]=a;c[f>>2]=4096+(R(b[e>>1]|0,b[e>>1]|0)|0)>>13;b[g>>1]=c[f>>2];b[g>>1]=32767-(b[g>>1]|0)+(16384+(R(b[g>>1]|0,((16384+(R(b[g>>1]|0,(8277+(16384+(R(-626,b[g>>1]|0)|0)>>15)&65535)<<16>>16)|0)>>15)+-7651&65535)<<16>>16)|0)>>15);l=d;return 1+(b[g>>1]|0)&65535|0}function Xa(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;d=l;l=l+16|0;e=d+12|0;f=d+8|0;g=d+4|0;h=d;c[e>>2]=a;c[f>>2]=b;c[g>>2]=32-(U(c[f>>2]|0)|0);c[h>>2]=32-(U(c[e>>2]|0)|0);c[f>>2]=c[f>>2]<<15-(c[g>>2]|0);c[e>>2]=c[e>>2]<<15-(c[h>>2]|0);b=((c[h>>2]|0)-(c[g>>2]|0)<<11)+(16384+(R((c[e>>2]&65535)<<16>>16,((16384+(R((c[e>>2]&65535)<<16>>16,-2597)|0)>>15)+7932&65535)<<16>>16)|0)>>15)|0;e=b-(16384+(R((c[f>>2]&65535)<<16>>16,((16384+(R((c[f>>2]&65535)<<16>>16,-2597)|0)>>15)+7932&65535)<<16>>16)|0)>>15)|0;l=d;return e|0}function Ya(a){a=a|0;var b=0,d=0,e=0;b=l;l=l+16|0;d=b+4|0;e=b;c[d>>2]=a;while(1){if((c[(c[d>>2]|0)+28>>2]|0)>>>0>8388608)break;a=(c[d>>2]|0)+20|0;c[a>>2]=(c[a>>2]|0)+8;a=(c[d>>2]|0)+28|0;c[a>>2]=c[a>>2]<<8;c[e>>2]=c[(c[d>>2]|0)+40>>2];a=Za(c[d>>2]|0)|0;c[(c[d>>2]|0)+40>>2]=a;c[e>>2]=(c[e>>2]<<8|c[(c[d>>2]|0)+40>>2])>>1;c[(c[d>>2]|0)+32>>2]=(c[(c[d>>2]|0)+32>>2]<<8)+(255&~c[e>>2])&2147483647}l=b;return}function Za(a){a=a|0;var b=0,e=0,f=0,g=0;b=l;l=l+16|0;e=b;c[e>>2]=a;if((c[(c[e>>2]|0)+24>>2]|0)>>>0>=(c[(c[e>>2]|0)+4>>2]|0)>>>0){f=0;l=b;return f|0}a=c[c[e>>2]>>2]|0;g=(c[e>>2]|0)+24|0;e=c[g>>2]|0;c[g>>2]=e+1;f=d[a+e>>0]|0;l=b;return f|0}function _a(a){a=a|0;var b=0,d=0;b=l;l=l+16|0;d=b;c[d>>2]=a;while(1){if((c[(c[d>>2]|0)+28>>2]|0)>>>0>8388608)break;$a(c[d>>2]|0,(c[(c[d>>2]|0)+32>>2]|0)>>>23);c[(c[d>>2]|0)+32>>2]=c[(c[d>>2]|0)+32>>2]<<8&2147483647;a=(c[d>>2]|0)+28|0;c[a>>2]=c[a>>2]<<8;a=(c[d>>2]|0)+20|0;c[a>>2]=(c[a>>2]|0)+8}l=b;return}function $a(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;d=l;l=l+16|0;e=d+12|0;f=d+8|0;g=d+4|0;h=d;c[e>>2]=a;c[f>>2]=b;if((c[f>>2]|0)==255){b=(c[e>>2]|0)+36|0;c[b>>2]=(c[b>>2]|0)+1;l=d;return}c[g>>2]=c[f>>2]>>8;if((c[(c[e>>2]|0)+40>>2]|0)>=0){b=ab(c[e>>2]|0,(c[(c[e>>2]|0)+40>>2]|0)+(c[g>>2]|0)|0)|0;a=(c[e>>2]|0)+44|0;c[a>>2]=c[a>>2]|b}if((c[(c[e>>2]|0)+36>>2]|0)>>>0>0){c[h>>2]=255+(c[g>>2]|0)&255;do{g=ab(c[e>>2]|0,c[h>>2]|0)|0;b=(c[e>>2]|0)+44|0;c[b>>2]=c[b>>2]|g;g=(c[e>>2]|0)+36|0;b=(c[g>>2]|0)+-1|0;c[g>>2]=b}while(b>>>0>0)}c[(c[e>>2]|0)+40>>2]=c[f>>2]&255;l=d;return}function ab(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0;e=l;l=l+16|0;f=e+8|0;g=e+4|0;h=e;c[g>>2]=b;c[h>>2]=d;if(((c[(c[g>>2]|0)+24>>2]|0)+(c[(c[g>>2]|0)+8>>2]|0)|0)>>>0>=(c[(c[g>>2]|0)+4>>2]|0)>>>0){c[f>>2]=-1;i=c[f>>2]|0;l=e;return i|0}else{d=c[h>>2]&255;h=c[c[g>>2]>>2]|0;b=(c[g>>2]|0)+24|0;g=c[b>>2]|0;c[b>>2]=g+1;a[h+g>>0]=d;c[f>>2]=0;i=c[f>>2]|0;l=e;return i|0}return 0}function bb(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=l;l=l+16|0;e=d+4|0;f=d;c[e>>2]=a;c[f>>2]=b;l=d;return ((c[e>>2]|0)>>>0)/((c[f>>2]|0)>>>0)|0|0}function cb(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=l;l=l+16|0;e=d+4|0;f=d;c[e>>2]=a;c[f>>2]=b;l=d;return ((c[e>>2]|0)>>>0)/((c[f>>2]|0)>>>0)|0|0}function db(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0;f=l;l=l+48|0;h=f+32|0;i=f+28|0;j=f+24|0;k=f+20|0;m=f+16|0;n=f+12|0;o=f+8|0;p=f+4|0;q=f;c[h>>2]=a;c[i>>2]=b;c[j>>2]=d;c[k>>2]=e;c[o>>2]=R(c[i>>2]|0,c[j>>2]|0)|0;e=c[o>>2]|0;c[p>>2]=da()|0;d=l;l=l+((1*(e<<2)|0)+15&-16)|0;if(c[k>>2]|0){c[q>>2]=212+(c[j>>2]<<2)+-8;c[m>>2]=0;while(1){if((c[m>>2]|0)>=(c[j>>2]|0))break;c[n>>2]=0;while(1){if((c[n>>2]|0)>=(c[i>>2]|0))break;k=R(c[n>>2]|0,c[j>>2]|0)|0;e=R(c[(c[q>>2]|0)+(c[m>>2]<<2)>>2]|0,c[i>>2]|0)|0;g[d+(e+(c[n>>2]|0)<<2)>>2]=+g[(c[h>>2]|0)+(k+(c[m>>2]|0)<<2)>>2];c[n>>2]=(c[n>>2]|0)+1}c[m>>2]=(c[m>>2]|0)+1}r=c[h>>2]|0;s=c[o>>2]|0;t=s<<2;u=c[h>>2]|0;v=u;w=d;x=v-w|0;y=(x|0)/4|0;z=0;A=t+z|0;Ie(r|0,d|0,A|0)|0;B=c[p>>2]|0;ga(B|0);l=f;return}else{c[m>>2]=0;while(1){if((c[m>>2]|0)>=(c[j>>2]|0))break;c[n>>2]=0;while(1){if((c[n>>2]|0)>=(c[i>>2]|0))break;q=R(c[n>>2]|0,c[j>>2]|0)|0;k=R(c[m>>2]|0,c[i>>2]|0)|0;g[d+(k+(c[n>>2]|0)<<2)>>2]=+g[(c[h>>2]|0)+(q+(c[m>>2]|0)<<2)>>2];c[n>>2]=(c[n>>2]|0)+1}c[m>>2]=(c[m>>2]|0)+1}r=c[h>>2]|0;s=c[o>>2]|0;t=s<<2;u=c[h>>2]|0;v=u;w=d;x=v-w|0;y=(x|0)/4|0;z=0;A=t+z|0;Ie(r|0,d|0,A|0)|0;B=c[p>>2]|0;ga(B|0);l=f;return}}function eb(a,e,f,h,i,j,k,m,n){a=a|0;e=e|0;f=f|0;h=h|0;i=i|0;j=j|0;k=k|0;m=+m;n=n|0;var o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,$=0,aa=0,ba=0,ca=0;o=l;l=l+176|0;p=o+164|0;q=o+160|0;r=o+156|0;s=o+152|0;t=o+148|0;u=o+144|0;v=o+140|0;w=o+136|0;x=o+132|0;y=o+128|0;z=o+124|0;A=o+120|0;B=o+116|0;C=o+112|0;D=o+108|0;E=o+104|0;F=o+100|0;G=o+96|0;H=o+92|0;I=o+88|0;J=o+84|0;K=o+80|0;L=o+76|0;M=o+72|0;N=o+68|0;O=o+64|0;P=o+60|0;Q=o+56|0;S=o+52|0;T=o+48|0;U=o+24|0;V=o+20|0;W=o+16|0;X=o+12|0;Y=o+8|0;Z=o+4|0;_=o;c[p>>2]=a;c[q>>2]=e;c[r>>2]=f;c[s>>2]=h;c[t>>2]=i;c[u>>2]=j;c[v>>2]=k;g[w>>2]=m;c[x>>2]=n;c[B>>2]=0;c[C>>2]=0;c[D>>2]=c[t>>2];g[E>>2]=0.0;g[F>>2]=0.0;c[G>>2]=0;c[H>>2]=((c[c[p>>2]>>2]|0)!=0^1)&1;c[I>>2]=0;c[J>>2]=c[c[p>>2]>>2];c[K>>2]=c[(c[p>>2]|0)+4>>2];c[L>>2]=c[(c[p>>2]|0)+8>>2];c[M>>2]=c[(c[p>>2]|0)+16>>2];c[N>>2]=c[(c[p>>2]|0)+24>>2];n=R((c[v>>2]|0)+1|0,c[(c[K>>2]|0)+8>>2]|0)|0;c[y>>2]=(c[(c[K>>2]|0)+92+8>>2]|0)+(b[(c[(c[K>>2]|0)+92+4>>2]|0)+(n+(c[L>>2]|0)<<1)>>1]|0);if((c[v>>2]|0)!=-1?((c[r>>2]|0)>2?(c[s>>2]|0)>((d[(c[y>>2]|0)+(d[c[y>>2]>>0]|0)>>0]|0)+12|0):0):0){c[V>>2]=0;c[r>>2]=c[r>>2]>>1;c[I>>2]=(c[q>>2]|0)+(c[r>>2]<<2);c[v>>2]=(c[v>>2]|0)-1;if((c[t>>2]|0)==1)c[x>>2]=c[x>>2]&1|c[x>>2]<<1;c[t>>2]=(c[t>>2]|0)+1>>1;Da(c[p>>2]|0,U,c[q>>2]|0,c[I>>2]|0,c[r>>2]|0,s,c[t>>2]|0,c[D>>2]|0,c[v>>2]|0,0,x);c[B>>2]=c[U+4>>2];c[C>>2]=c[U+8>>2];c[Q>>2]=c[U+12>>2];c[S>>2]=c[U+16>>2];c[T>>2]=c[U+20>>2];g[E>>2]=+(c[B>>2]|0)*.000030517578125;g[F>>2]=+(c[C>>2]|0)*.000030517578125;do if((c[D>>2]|0)>1?c[S>>2]&16383|0:0){C=c[Q>>2]|0;if((c[S>>2]|0)>8192){c[Q>>2]=(c[Q>>2]|0)-(C>>4-(c[v>>2]|0));break}if(0<(C+(c[r>>2]<<3>>5-(c[v>>2]|0))|0))$=0;else $=(c[Q>>2]|0)+(c[r>>2]<<3>>5-(c[v>>2]|0))|0;c[Q>>2]=$}while(0);$=c[s>>2]|0;if((c[s>>2]|0)<(((c[s>>2]|0)-(c[Q>>2]|0)|0)/2|0|0))aa=$;else aa=($-(c[Q>>2]|0)|0)/2|0;if(0<=(aa|0)){aa=c[s>>2]|0;if((c[s>>2]|0)<(((c[s>>2]|0)-(c[Q>>2]|0)|0)/2|0|0))ba=aa;else ba=(aa-(c[Q>>2]|0)|0)/2|0}else ba=0;c[O>>2]=ba;c[P>>2]=(c[s>>2]|0)-(c[O>>2]|0);ba=(c[p>>2]|0)+28|0;c[ba>>2]=(c[ba>>2]|0)-(c[T>>2]|0);if(c[u>>2]|0)c[V>>2]=(c[u>>2]|0)+(c[r>>2]<<2);c[W>>2]=c[(c[p>>2]|0)+28>>2];T=c[p>>2]|0;if((c[O>>2]|0)>=(c[P>>2]|0)){c[G>>2]=eb(T,c[q>>2]|0,c[r>>2]|0,c[O>>2]|0,c[t>>2]|0,c[u>>2]|0,c[v>>2]|0,+g[w>>2]*+g[E>>2],c[x>>2]|0)|0;c[W>>2]=(c[O>>2]|0)-((c[W>>2]|0)-(c[(c[p>>2]|0)+28>>2]|0));if((c[W>>2]|0)>24&(c[S>>2]|0)!=0)c[P>>2]=(c[P>>2]|0)+((c[W>>2]|0)-24);ba=eb(c[p>>2]|0,c[I>>2]|0,c[r>>2]|0,c[P>>2]|0,c[t>>2]|0,c[V>>2]|0,c[v>>2]|0,+g[w>>2]*+g[F>>2],c[x>>2]>>c[t>>2])|0;c[G>>2]=c[G>>2]|ba<<(c[D>>2]>>1);ca=c[G>>2]|0;l=o;return ca|0}else{ba=eb(T,c[I>>2]|0,c[r>>2]|0,c[P>>2]|0,c[t>>2]|0,c[V>>2]|0,c[v>>2]|0,+g[w>>2]*+g[F>>2],c[x>>2]>>c[t>>2])|0;c[G>>2]=ba<<(c[D>>2]>>1);c[W>>2]=(c[P>>2]|0)-((c[W>>2]|0)-(c[(c[p>>2]|0)+28>>2]|0));if((c[W>>2]|0)>24&(c[S>>2]|0)!=16384)c[O>>2]=(c[O>>2]|0)+((c[W>>2]|0)-24);W=eb(c[p>>2]|0,c[q>>2]|0,c[r>>2]|0,c[O>>2]|0,c[t>>2]|0,c[u>>2]|0,c[v>>2]|0,+g[w>>2]*+g[E>>2],c[x>>2]|0)|0;c[G>>2]=c[G>>2]|W;ca=c[G>>2]|0;l=o;return ca|0}}c[z>>2]=gb(c[K>>2]|0,c[L>>2]|0,c[v>>2]|0,c[s>>2]|0)|0;c[A>>2]=hb(c[K>>2]|0,c[L>>2]|0,c[v>>2]|0,c[z>>2]|0)|0;s=c[p>>2]|0;W=c[A>>2]|0;while(1){E=s+28|0;c[E>>2]=(c[E>>2]|0)-W;if(!((c[(c[p>>2]|0)+28>>2]|0)<0?(c[z>>2]|0)>0:0))break;E=(c[p>>2]|0)+28|0;c[E>>2]=(c[E>>2]|0)+(c[A>>2]|0);c[z>>2]=(c[z>>2]|0)+-1;c[A>>2]=hb(c[K>>2]|0,c[L>>2]|0,c[v>>2]|0,c[z>>2]|0)|0;s=c[p>>2]|0;W=c[A>>2]|0}if(c[z>>2]|0){c[X>>2]=ib(c[z>>2]|0)|0;z=c[q>>2]|0;A=c[r>>2]|0;W=c[X>>2]|0;X=c[M>>2]|0;M=c[t>>2]|0;s=c[N>>2]|0;if(c[J>>2]|0){c[G>>2]=jb(z,A,W,X,M,s)|0;ca=c[G>>2]|0;l=o;return ca|0}else{c[G>>2]=kb(z,A,W,X,M,s,+g[w>>2])|0;ca=c[G>>2]|0;l=o;return ca|0}}if(!(c[H>>2]|0)){ca=c[G>>2]|0;l=o;return ca|0}c[Z>>2]=(1<<c[t>>2])-1;c[x>>2]=c[x>>2]&c[Z>>2];if(!(c[x>>2]|0)){He(c[q>>2]|0,0,c[r>>2]<<2|0)|0;ca=c[G>>2]|0;l=o;return ca|0}t=(c[u>>2]|0)==0;c[Y>>2]=0;if(t){while(1){if((c[Y>>2]|0)>=(c[r>>2]|0))break;t=qa(c[(c[p>>2]|0)+36>>2]|0)|0;c[(c[p>>2]|0)+36>>2]=t;g[(c[q>>2]|0)+(c[Y>>2]<<2)>>2]=+(c[(c[p>>2]|0)+36>>2]>>20|0);c[Y>>2]=(c[Y>>2]|0)+1}c[G>>2]=c[Z>>2]}else{while(1){if((c[Y>>2]|0)>=(c[r>>2]|0))break;Z=qa(c[(c[p>>2]|0)+36>>2]|0)|0;c[(c[p>>2]|0)+36>>2]=Z;g[_>>2]=.00390625;m=+g[_>>2];g[_>>2]=c[(c[p>>2]|0)+36>>2]&32768|0?m:-m;g[(c[q>>2]|0)+(c[Y>>2]<<2)>>2]=+g[(c[u>>2]|0)+(c[Y>>2]<<2)>>2]+ +g[_>>2];c[Y>>2]=(c[Y>>2]|0)+1}c[G>>2]=c[x>>2]}ua(c[q>>2]|0,c[r>>2]|0,+g[w>>2]);ca=c[G>>2]|0;l=o;return ca|0}function fb(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0;f=l;l=l+48|0;h=f+32|0;i=f+28|0;j=f+24|0;k=f+20|0;m=f+16|0;n=f+12|0;o=f+8|0;p=f+4|0;q=f;c[h>>2]=a;c[i>>2]=b;c[j>>2]=d;c[k>>2]=e;c[o>>2]=R(c[i>>2]|0,c[j>>2]|0)|0;e=c[o>>2]|0;c[p>>2]=da()|0;d=l;l=l+((1*(e<<2)|0)+15&-16)|0;if(c[k>>2]|0){c[q>>2]=212+(c[j>>2]<<2)+-8;c[m>>2]=0;while(1){if((c[m>>2]|0)>=(c[j>>2]|0))break;c[n>>2]=0;while(1){if((c[n>>2]|0)>=(c[i>>2]|0))break;k=R(c[(c[q>>2]|0)+(c[m>>2]<<2)>>2]|0,c[i>>2]|0)|0;e=R(c[n>>2]|0,c[j>>2]|0)|0;g[d+(e+(c[m>>2]|0)<<2)>>2]=+g[(c[h>>2]|0)+(k+(c[n>>2]|0)<<2)>>2];c[n>>2]=(c[n>>2]|0)+1}c[m>>2]=(c[m>>2]|0)+1}r=c[h>>2]|0;s=c[o>>2]|0;t=s<<2;u=c[h>>2]|0;v=u;w=d;x=v-w|0;y=(x|0)/4|0;z=0;A=t+z|0;Ie(r|0,d|0,A|0)|0;B=c[p>>2]|0;ga(B|0);l=f;return}else{c[m>>2]=0;while(1){if((c[m>>2]|0)>=(c[j>>2]|0))break;c[n>>2]=0;while(1){if((c[n>>2]|0)>=(c[i>>2]|0))break;q=R(c[m>>2]|0,c[i>>2]|0)|0;k=R(c[n>>2]|0,c[j>>2]|0)|0;g[d+(k+(c[m>>2]|0)<<2)>>2]=+g[(c[h>>2]|0)+(q+(c[n>>2]|0)<<2)>>2];c[n>>2]=(c[n>>2]|0)+1}c[m>>2]=(c[m>>2]|0)+1}r=c[h>>2]|0;s=c[o>>2]|0;t=s<<2;u=c[h>>2]|0;v=u;w=d;x=v-w|0;y=(x|0)/4|0;z=0;A=t+z|0;Ie(r|0,d|0,A|0)|0;B=c[p>>2]|0;ga(B|0);l=f;return}}function gb(a,e,f,g){a=a|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0;h=l;l=l+48|0;i=h+36|0;j=h+32|0;k=h+28|0;m=h+24|0;n=h+20|0;o=h+16|0;p=h+12|0;q=h+8|0;r=h+4|0;s=h;c[j>>2]=a;c[k>>2]=e;c[m>>2]=f;c[n>>2]=g;c[m>>2]=(c[m>>2]|0)+1;g=R(c[m>>2]|0,c[(c[j>>2]|0)+8>>2]|0)|0;c[r>>2]=(c[(c[j>>2]|0)+92+8>>2]|0)+(b[(c[(c[j>>2]|0)+92+4>>2]|0)+(g+(c[k>>2]|0)<<1)>>1]|0);c[p>>2]=0;c[q>>2]=d[c[r>>2]>>0];c[n>>2]=(c[n>>2]|0)+-1;c[o>>2]=0;while(1){if((c[o>>2]|0)>=6)break;c[s>>2]=(c[p>>2]|0)+(c[q>>2]|0)+1>>1;k=c[s>>2]|0;if((d[(c[r>>2]|0)+(c[s>>2]|0)>>0]|0)>=(c[n>>2]|0))c[q>>2]=k;else c[p>>2]=k;c[o>>2]=(c[o>>2]|0)+1}if(!(c[p>>2]|0))t=-1;else t=d[(c[r>>2]|0)+(c[p>>2]|0)>>0]|0;if(((c[n>>2]|0)-t|0)<=((d[(c[r>>2]|0)+(c[q>>2]|0)>>0]|0)-(c[n>>2]|0)|0)){c[i>>2]=c[p>>2];u=c[i>>2]|0;l=h;return u|0}else{c[i>>2]=c[q>>2];u=c[i>>2]|0;l=h;return u|0}return 0}function hb(a,e,f,g){a=a|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,m=0,n=0,o=0;h=l;l=l+32|0;i=h+16|0;j=h+12|0;k=h+8|0;m=h+4|0;n=h;c[i>>2]=a;c[j>>2]=e;c[k>>2]=f;c[m>>2]=g;c[k>>2]=(c[k>>2]|0)+1;g=R(c[k>>2]|0,c[(c[i>>2]|0)+8>>2]|0)|0;c[n>>2]=(c[(c[i>>2]|0)+92+8>>2]|0)+(b[(c[(c[i>>2]|0)+92+4>>2]|0)+(g+(c[j>>2]|0)<<1)>>1]|0);if(!(c[m>>2]|0)){o=0;l=h;return o|0}o=(d[(c[n>>2]|0)+(c[m>>2]|0)>>0]|0)+1|0;l=h;return o|0}function ib(a){a=a|0;var b=0,d=0,e=0;b=l;l=l+16|0;d=b;c[d>>2]=a;a=c[d>>2]|0;if((c[d>>2]|0)<8){e=a;l=b;return e|0}e=8+(a&7)<<(c[d>>2]>>3)-1;l=b;return e|0}function jb(a,b,d,e,f,h){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;h=h|0;var i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,E=0,F=0,G=0;i=l;l=l+96|0;j=i+84|0;k=i+80|0;m=i+76|0;n=i+72|0;o=i+68|0;p=i+64|0;q=i+60|0;r=i+56|0;s=i+52|0;t=i+48|0;u=i+44|0;v=i+40|0;w=i+36|0;x=i+32|0;y=i+28|0;z=i+24|0;A=i+20|0;B=i+16|0;C=i+12|0;E=i+8|0;F=i+4|0;G=i;c[j>>2]=a;c[k>>2]=b;c[m>>2]=d;c[n>>2]=e;c[o>>2]=f;c[p>>2]=h;h=c[k>>2]|0;c[y>>2]=da()|0;f=l;l=l+((1*(h<<2)|0)+15&-16)|0;h=l;l=l+((1*(c[k>>2]<<2)|0)+15&-16)|0;e=l;l=l+((1*(c[k>>2]<<2)|0)+15&-16)|0;nb(c[j>>2]|0,c[k>>2]|0,1,c[o>>2]|0,c[m>>2]|0,c[n>>2]|0);g[u>>2]=0.0;c[r>>2]=0;do{n=e+(c[r>>2]<<2)|0;if(+g[(c[j>>2]|0)+(c[r>>2]<<2)>>2]>0.0)g[n>>2]=1.0;else{g[n>>2]=-1.0;g[(c[j>>2]|0)+(c[r>>2]<<2)>>2]=-+g[(c[j>>2]|0)+(c[r>>2]<<2)>>2]}c[h+(c[r>>2]<<2)>>2]=0;g[f+(c[r>>2]<<2)>>2]=0.0;n=(c[r>>2]|0)+1|0;c[r>>2]=n}while((n|0)<(c[k>>2]|0));g[w>>2]=0.0;g[v>>2]=0.0;c[t>>2]=c[m>>2];if((c[m>>2]|0)>(c[k>>2]>>1|0)){c[r>>2]=0;do{g[u>>2]=+g[u>>2]+ +g[(c[j>>2]|0)+(c[r>>2]<<2)>>2];n=(c[r>>2]|0)+1|0;c[r>>2]=n}while((n|0)<(c[k>>2]|0));if(!(+g[u>>2]>1.0000000036274937e-15&+g[u>>2]<64.0)){g[c[j>>2]>>2]=1.0;c[r>>2]=1;do{g[(c[j>>2]|0)+(c[r>>2]<<2)>>2]=0.0;n=(c[r>>2]|0)+1|0;c[r>>2]=n}while((n|0)<(c[k>>2]|0));g[u>>2]=1.0}g[z>>2]=+((c[m>>2]|0)-1|0)*(1.0/+g[u>>2]);c[r>>2]=0;do{u=~~+D(+(+g[z>>2]*+g[(c[j>>2]|0)+(c[r>>2]<<2)>>2]));c[h+(c[r>>2]<<2)>>2]=u;g[f+(c[r>>2]<<2)>>2]=+(c[h+(c[r>>2]<<2)>>2]|0);g[w>>2]=+g[w>>2]+ +g[f+(c[r>>2]<<2)>>2]*+g[f+(c[r>>2]<<2)>>2];g[v>>2]=+g[v>>2]+ +g[(c[j>>2]|0)+(c[r>>2]<<2)>>2]*+g[f+(c[r>>2]<<2)>>2];u=f+(c[r>>2]<<2)|0;g[u>>2]=+g[u>>2]*2.0;c[t>>2]=(c[t>>2]|0)-(c[h+(c[r>>2]<<2)>>2]|0);u=(c[r>>2]|0)+1|0;c[r>>2]=u}while((u|0)<(c[k>>2]|0))}if((c[t>>2]|0)>((c[k>>2]|0)+3|0)){g[A>>2]=+(c[t>>2]|0);g[w>>2]=+g[w>>2]+ +g[A>>2]*+g[A>>2];g[w>>2]=+g[w>>2]+ +g[A>>2]*+g[f>>2];c[h>>2]=(c[h>>2]|0)+(c[t>>2]|0);c[t>>2]=0}g[s>>2]=1.0;c[q>>2]=0;while(1){if((c[q>>2]|0)>=(c[t>>2]|0))break;g[C>>2]=-999999986991104.0;g[E>>2]=0.0;c[B>>2]=0;g[w>>2]=+g[w>>2]+1.0;c[r>>2]=0;do{g[F>>2]=+g[v>>2]+ +g[(c[j>>2]|0)+(c[r>>2]<<2)>>2];g[G>>2]=+g[w>>2]+ +g[f+(c[r>>2]<<2)>>2];g[F>>2]=+g[F>>2]*+g[F>>2];if(+g[E>>2]*+g[F>>2]>+g[G>>2]*+g[C>>2]){g[E>>2]=+g[G>>2];g[C>>2]=+g[F>>2];c[B>>2]=c[r>>2]}A=(c[r>>2]|0)+1|0;c[r>>2]=A}while((A|0)<(c[k>>2]|0));g[v>>2]=+g[v>>2]+ +g[(c[j>>2]|0)+(c[B>>2]<<2)>>2];g[w>>2]=+g[w>>2]+ +g[f+(c[B>>2]<<2)>>2];A=f+(c[B>>2]<<2)|0;g[A>>2]=+g[A>>2]+ +g[s>>2]*2.0;A=h+(c[B>>2]<<2)|0;c[A>>2]=(c[A>>2]|0)+1;c[q>>2]=(c[q>>2]|0)+1}c[r>>2]=0;do{g[(c[j>>2]|0)+(c[r>>2]<<2)>>2]=+g[e+(c[r>>2]<<2)>>2]*+g[(c[j>>2]|0)+(c[r>>2]<<2)>>2];if(+g[e+(c[r>>2]<<2)>>2]<0.0)c[h+(c[r>>2]<<2)>>2]=0-(c[h+(c[r>>2]<<2)>>2]|0);q=(c[r>>2]|0)+1|0;c[r>>2]=q}while((q|0)<(c[k>>2]|0));sb(h,c[k>>2]|0,c[m>>2]|0,c[p>>2]|0);c[x>>2]=ob(h,c[k>>2]|0,c[o>>2]|0)|0;o=c[x>>2]|0;ga(c[y>>2]|0);l=i;return o|0}function kb(a,b,d,e,f,h,i){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;h=h|0;i=+i;var j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0;j=l;l=l+48|0;k=j+36|0;m=j+32|0;n=j+28|0;o=j+24|0;p=j+20|0;q=j+16|0;r=j+12|0;s=j+8|0;t=j+4|0;u=j;c[k>>2]=a;c[m>>2]=b;c[n>>2]=d;c[o>>2]=e;c[p>>2]=f;c[q>>2]=h;g[r>>2]=i;h=c[m>>2]|0;c[u>>2]=da()|0;f=l;l=l+((1*(h<<2)|0)+15&-16)|0;g[s>>2]=+lb(f,c[m>>2]|0,c[n>>2]|0,c[q>>2]|0);mb(f,c[k>>2]|0,c[m>>2]|0,+g[s>>2],+g[r>>2]);nb(c[k>>2]|0,c[m>>2]|0,-1,c[p>>2]|0,c[n>>2]|0,c[o>>2]|0);c[t>>2]=ob(f,c[m>>2]|0,c[p>>2]|0)|0;p=c[t>>2]|0;ga(c[u>>2]|0);l=j;return p|0}function lb(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0.0;f=l;l=l+16|0;g=f+12|0;h=f+8|0;i=f+4|0;j=f;c[g>>2]=a;c[h>>2]=b;c[i>>2]=d;c[j>>2]=e;e=c[h>>2]|0;d=c[i>>2]|0;b=Qa(c[j>>2]|0,(c[(c[344+(((c[h>>2]|0)<(c[i>>2]|0)?c[h>>2]|0:c[i>>2]|0)<<2)>>2]|0)+(((c[h>>2]|0)>(c[i>>2]|0)?c[h>>2]|0:c[i>>2]|0)<<2)>>2]|0)+(c[(c[344+(((c[h>>2]|0)<((c[i>>2]|0)+1|0)?c[h>>2]|0:(c[i>>2]|0)+1|0)<<2)>>2]|0)+(((c[h>>2]|0)>((c[i>>2]|0)+1|0)?c[h>>2]|0:(c[i>>2]|0)+1|0)<<2)>>2]|0)|0)|0;k=+rb(e,d,b,c[g>>2]|0);l=f;return +k}function mb(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=+e;f=+f;var h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0;h=l;l=l+32|0;i=h+28|0;j=h+24|0;k=h+20|0;m=h+16|0;n=h+12|0;o=h+8|0;p=h+4|0;q=h;c[i>>2]=a;c[j>>2]=b;c[k>>2]=d;g[m>>2]=e;g[n>>2]=f;g[p>>2]=+g[m>>2];f=1.0/+F(+(+g[p>>2]));g[q>>2]=f*+g[n>>2];c[o>>2]=0;do{g[(c[j>>2]|0)+(c[o>>2]<<2)>>2]=+g[q>>2]*+(c[(c[i>>2]|0)+(c[o>>2]<<2)>>2]|0);n=(c[o>>2]|0)+1|0;c[o>>2]=n}while((n|0)<(c[k>>2]|0));l=h;return}function nb(a,b,d,e,f,h){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;h=h|0;var i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0;i=l;l=l+64|0;j=i+48|0;k=i+44|0;m=i+40|0;n=i+36|0;o=i+32|0;p=i+28|0;q=i+24|0;r=i+20|0;s=i+16|0;t=i+12|0;u=i+8|0;v=i+4|0;w=i;c[j>>2]=a;c[k>>2]=b;c[m>>2]=d;c[n>>2]=e;c[o>>2]=f;c[p>>2]=h;c[v>>2]=0;if((c[p>>2]|0)==0?1:(c[o>>2]<<1|0)>=(c[k>>2]|0)){l=i;return}c[w>>2]=c[332+((c[p>>2]|0)-1<<2)>>2];g[t>>2]=+(c[k>>2]|0)*1.0/+((c[k>>2]|0)+(R(c[w>>2]|0,c[o>>2]|0)|0)|0);g[u>>2]=+g[t>>2]*+g[t>>2]*.5;g[r>>2]=+H(+(+g[u>>2]*1.5707963705062866));g[s>>2]=+H(+((1.0-+g[u>>2])*1.5707963705062866));a:do if((c[k>>2]|0)>=(c[n>>2]<<3|0)){c[v>>2]=1;while(1){u=R(c[v>>2]|0,c[v>>2]|0)|0;t=R(u+(c[v>>2]|0)|0,c[n>>2]|0)|0;if((t+(c[n>>2]>>2)|0)>=(c[k>>2]|0))break a;c[v>>2]=(c[v>>2]|0)+1}}while(0);c[k>>2]=pb(c[k>>2]|0,c[n>>2]|0)|0;c[q>>2]=0;while(1){if((c[q>>2]|0)>=(c[n>>2]|0))break;if((c[m>>2]|0)>=0){t=(c[j>>2]|0)+((R(c[q>>2]|0,c[k>>2]|0)|0)<<2)|0;qb(t,c[k>>2]|0,1,+g[r>>2],-+g[s>>2]);if(c[v>>2]|0){t=(c[j>>2]|0)+((R(c[q>>2]|0,c[k>>2]|0)|0)<<2)|0;qb(t,c[k>>2]|0,c[v>>2]|0,+g[s>>2],-+g[r>>2])}}else{if(c[v>>2]|0){t=(c[j>>2]|0)+((R(c[q>>2]|0,c[k>>2]|0)|0)<<2)|0;qb(t,c[k>>2]|0,c[v>>2]|0,+g[s>>2],+g[r>>2])}t=(c[j>>2]|0)+((R(c[q>>2]|0,c[k>>2]|0)|0)<<2)|0;qb(t,c[k>>2]|0,1,+g[r>>2],+g[s>>2])}c[q>>2]=(c[q>>2]|0)+1}l=i;return}function ob(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0;e=l;l=l+48|0;f=e+32|0;g=e+28|0;h=e+24|0;i=e+20|0;j=e+16|0;k=e+12|0;m=e+8|0;n=e+4|0;o=e;c[g>>2]=a;c[h>>2]=b;c[i>>2]=d;if((c[i>>2]|0)<=1){c[f>>2]=1;p=c[f>>2]|0;l=e;return p|0}c[k>>2]=pb(c[h>>2]|0,c[i>>2]|0)|0;c[j>>2]=0;c[m>>2]=0;do{c[o>>2]=0;c[n>>2]=0;do{h=R(c[m>>2]|0,c[k>>2]|0)|0;c[o>>2]=c[o>>2]|c[(c[g>>2]|0)+(h+(c[n>>2]|0)<<2)>>2];h=(c[n>>2]|0)+1|0;c[n>>2]=h}while((h|0)<(c[k>>2]|0));c[j>>2]=c[j>>2]|((c[o>>2]|0)!=0&1)<<c[m>>2];h=(c[m>>2]|0)+1|0;c[m>>2]=h}while((h|0)<(c[i>>2]|0));c[f>>2]=c[j>>2];p=c[f>>2]|0;l=e;return p|0}function pb(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=l;l=l+16|0;e=d+4|0;f=d;c[e>>2]=a;c[f>>2]=b;l=d;return ((c[e>>2]|0)>>>0)/((c[f>>2]|0)>>>0)|0|0}function qb(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=+e;f=+f;var h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0;h=l;l=l+48|0;i=h+44|0;j=h+40|0;k=h+36|0;m=h+32|0;n=h+28|0;o=h+24|0;p=h+20|0;q=h+16|0;r=h+12|0;s=h+8|0;t=h+4|0;u=h;c[i>>2]=a;c[j>>2]=b;c[k>>2]=d;g[m>>2]=e;g[n>>2]=f;c[q>>2]=c[i>>2];g[p>>2]=-+g[n>>2];c[o>>2]=0;while(1){if((c[o>>2]|0)>=((c[j>>2]|0)-(c[k>>2]|0)|0))break;g[r>>2]=+g[c[q>>2]>>2];g[s>>2]=+g[(c[q>>2]|0)+(c[k>>2]<<2)>>2];g[(c[q>>2]|0)+(c[k>>2]<<2)>>2]=+g[m>>2]*+g[s>>2]+ +g[n>>2]*+g[r>>2];f=+g[m>>2]*+g[r>>2]+ +g[p>>2]*+g[s>>2];d=c[q>>2]|0;c[q>>2]=d+4;g[d>>2]=f;c[o>>2]=(c[o>>2]|0)+1}c[q>>2]=(c[i>>2]|0)+((c[j>>2]|0)-(c[k>>2]<<1)-1<<2);c[o>>2]=(c[j>>2]|0)-(c[k>>2]<<1)-1;while(1){if((c[o>>2]|0)<0)break;g[t>>2]=+g[c[q>>2]>>2];g[u>>2]=+g[(c[q>>2]|0)+(c[k>>2]<<2)>>2];g[(c[q>>2]|0)+(c[k>>2]<<2)>>2]=+g[m>>2]*+g[u>>2]+ +g[n>>2]*+g[t>>2];f=+g[m>>2]*+g[t>>2]+ +g[p>>2]*+g[u>>2];j=c[q>>2]|0;c[q>>2]=j+-4;g[j>>2]=f;c[o>>2]=(c[o>>2]|0)+-1}l=h;return}function rb(a,d,e,f){a=a|0;d=d|0;e=e|0;f=f|0;var h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0.0,I=0,J=0.0,K=0,L=0.0,M=0.0,N=0.0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0.0,_=0,$=0.0,aa=0,ba=0.0,ca=0.0,da=0.0,ea=0.0;h=l;l=l+48|0;i=h+36|0;j=h+32|0;k=h+28|0;m=h+24|0;n=h+20|0;o=h+16|0;p=h+12|0;q=h+40|0;r=h+8|0;s=h+4|0;t=h;c[i>>2]=a;c[j>>2]=d;c[k>>2]=e;c[m>>2]=f;g[r>>2]=0.0;while(1){u=c[j>>2]|0;if((c[i>>2]|0)<=2)break;do if((u|0)>=(c[i>>2]|0)){c[t>>2]=c[344+(c[i>>2]<<2)>>2];c[n>>2]=c[(c[t>>2]|0)+((c[j>>2]|0)+1<<2)>>2];c[o>>2]=0-((c[k>>2]|0)>>>0>=(c[n>>2]|0)>>>0&1);c[k>>2]=(c[k>>2]|0)-(c[n>>2]&c[o>>2]);c[p>>2]=c[j>>2];c[s>>2]=c[(c[t>>2]|0)+(c[i>>2]<<2)>>2];a:do if((c[s>>2]|0)>>>0>(c[k>>2]|0)>>>0){c[j>>2]=c[i>>2];do{f=(c[j>>2]|0)+-1|0;c[j>>2]=f;c[n>>2]=c[(c[344+(f<<2)>>2]|0)+(c[i>>2]<<2)>>2]}while((c[n>>2]|0)>>>0>(c[k>>2]|0)>>>0)}else{c[n>>2]=c[(c[t>>2]|0)+(c[j>>2]<<2)>>2];while(1){if((c[n>>2]|0)>>>0<=(c[k>>2]|0)>>>0)break a;c[j>>2]=(c[j>>2]|0)+-1;c[n>>2]=c[(c[t>>2]|0)+(c[j>>2]<<2)>>2]}}while(0);c[k>>2]=(c[k>>2]|0)-(c[n>>2]|0);b[q>>1]=(c[p>>2]|0)-(c[j>>2]|0)+(c[o>>2]|0)^c[o>>2];f=b[q>>1]|0;e=c[m>>2]|0;c[m>>2]=e+4;c[e>>2]=f;g[r>>2]=+g[r>>2]+ +(b[q>>1]|0)*+(b[q>>1]|0)}else{c[n>>2]=c[(c[344+(c[j>>2]<<2)>>2]|0)+(c[i>>2]<<2)>>2];c[s>>2]=c[(c[344+((c[j>>2]|0)+1<<2)>>2]|0)+(c[i>>2]<<2)>>2];if((c[n>>2]|0)>>>0<=(c[k>>2]|0)>>>0?(c[k>>2]|0)>>>0<(c[s>>2]|0)>>>0:0){c[k>>2]=(c[k>>2]|0)-(c[n>>2]|0);f=c[m>>2]|0;c[m>>2]=f+4;c[f>>2]=0;break}c[o>>2]=0-((c[k>>2]|0)>>>0>=(c[s>>2]|0)>>>0&1);c[k>>2]=(c[k>>2]|0)-(c[s>>2]&c[o>>2]);c[p>>2]=c[j>>2];do{f=(c[j>>2]|0)+-1|0;c[j>>2]=f;c[n>>2]=c[(c[344+(f<<2)>>2]|0)+(c[i>>2]<<2)>>2]}while((c[n>>2]|0)>>>0>(c[k>>2]|0)>>>0);c[k>>2]=(c[k>>2]|0)-(c[n>>2]|0);b[q>>1]=(c[p>>2]|0)-(c[j>>2]|0)+(c[o>>2]|0)^c[o>>2];f=b[q>>1]|0;e=c[m>>2]|0;c[m>>2]=e+4;c[e>>2]=f;g[r>>2]=+g[r>>2]+ +(b[q>>1]|0)*+(b[q>>1]|0)}while(0);c[i>>2]=(c[i>>2]|0)+-1}c[n>>2]=(u<<1)+1;c[o>>2]=0-((c[k>>2]|0)>>>0>=(c[n>>2]|0)>>>0&1);c[k>>2]=(c[k>>2]|0)-(c[n>>2]&c[o>>2]);c[p>>2]=c[j>>2];c[j>>2]=((c[k>>2]|0)+1|0)>>>1;if(!(c[j>>2]|0)){v=c[p>>2]|0;w=c[j>>2]|0;x=v-w|0;y=c[o>>2]|0;z=x+y|0;A=c[o>>2]|0;B=z^A;C=B&65535;b[q>>1]=C;D=b[q>>1]|0;E=D<<16>>16;F=c[m>>2]|0;G=F+4|0;c[m>>2]=G;c[F>>2]=E;H=+g[r>>2];I=b[q>>1]|0;J=+(I<<16>>16);K=b[q>>1]|0;L=+(K<<16>>16);M=J*L;N=H+M;g[r>>2]=N;O=c[k>>2]|0;P=0-O|0;c[o>>2]=P;Q=c[j>>2]|0;R=c[o>>2]|0;S=Q+R|0;T=c[o>>2]|0;U=S^T;V=U&65535;b[q>>1]=V;W=b[q>>1]|0;X=W<<16>>16;Y=c[m>>2]|0;c[Y>>2]=X;Z=+g[r>>2];_=b[q>>1]|0;$=+(_<<16>>16);aa=b[q>>1]|0;ba=+(aa<<16>>16);ca=$*ba;da=Z+ca;g[r>>2]=da;ea=+g[r>>2];l=h;return +ea}c[k>>2]=(c[k>>2]|0)-((c[j>>2]<<1)-1);v=c[p>>2]|0;w=c[j>>2]|0;x=v-w|0;y=c[o>>2]|0;z=x+y|0;A=c[o>>2]|0;B=z^A;C=B&65535;b[q>>1]=C;D=b[q>>1]|0;E=D<<16>>16;F=c[m>>2]|0;G=F+4|0;c[m>>2]=G;c[F>>2]=E;H=+g[r>>2];I=b[q>>1]|0;J=+(I<<16>>16);K=b[q>>1]|0;L=+(K<<16>>16);M=J*L;N=H+M;g[r>>2]=N;O=c[k>>2]|0;P=0-O|0;c[o>>2]=P;Q=c[j>>2]|0;R=c[o>>2]|0;S=Q+R|0;T=c[o>>2]|0;U=S^T;V=U&65535;b[q>>1]=V;W=b[q>>1]|0;X=W<<16>>16;Y=c[m>>2]|0;c[Y>>2]=X;Z=+g[r>>2];_=b[q>>1]|0;$=+(_<<16>>16);aa=b[q>>1]|0;ba=+(aa<<16>>16);ca=$*ba;da=Z+ca;g[r>>2]=da;ea=+g[r>>2];l=h;return +ea}function sb(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0;f=l;l=l+16|0;g=f+12|0;h=f+8|0;i=f+4|0;j=f;c[g>>2]=a;c[h>>2]=b;c[i>>2]=d;c[j>>2]=e;e=c[j>>2]|0;j=tb(c[h>>2]|0,c[g>>2]|0)|0;Pa(e,j,(c[(c[344+(((c[h>>2]|0)<(c[i>>2]|0)?c[h>>2]|0:c[i>>2]|0)<<2)>>2]|0)+(((c[h>>2]|0)>(c[i>>2]|0)?c[h>>2]|0:c[i>>2]|0)<<2)>>2]|0)+(c[(c[344+(((c[h>>2]|0)<((c[i>>2]|0)+1|0)?c[h>>2]|0:(c[i>>2]|0)+1|0)<<2)>>2]|0)+(((c[h>>2]|0)>((c[i>>2]|0)+1|0)?c[h>>2]|0:(c[i>>2]|0)+1|0)<<2)>>2]|0)|0);l=f;return}function tb(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0;d=l;l=l+32|0;e=d+16|0;f=d+12|0;g=d+8|0;h=d+4|0;i=d;c[e>>2]=a;c[f>>2]=b;c[h>>2]=(c[e>>2]|0)-1;c[g>>2]=(c[(c[f>>2]|0)+(c[h>>2]<<2)>>2]|0)<0&1;c[i>>2]=E(c[(c[f>>2]|0)+(c[h>>2]<<2)>>2]|0)|0;do{c[h>>2]=(c[h>>2]|0)+-1;if(((c[e>>2]|0)-(c[h>>2]|0)|0)<(c[i>>2]|0))j=(c[e>>2]|0)-(c[h>>2]|0)|0;else j=c[i>>2]|0;if(((c[e>>2]|0)-(c[h>>2]|0)|0)>(c[i>>2]|0))k=(c[e>>2]|0)-(c[h>>2]|0)|0;else k=c[i>>2]|0;c[g>>2]=(c[g>>2]|0)+(c[(c[344+(j<<2)>>2]|0)+(k<<2)>>2]|0);b=E(c[(c[f>>2]|0)+(c[h>>2]<<2)>>2]|0)|0;c[i>>2]=(c[i>>2]|0)+b;if((c[(c[f>>2]|0)+(c[h>>2]<<2)>>2]|0)<0){if(((c[e>>2]|0)-(c[h>>2]|0)|0)<((c[i>>2]|0)+1|0))m=(c[e>>2]|0)-(c[h>>2]|0)|0;else m=(c[i>>2]|0)+1|0;if(((c[e>>2]|0)-(c[h>>2]|0)|0)>((c[i>>2]|0)+1|0))n=(c[e>>2]|0)-(c[h>>2]|0)|0;else n=(c[i>>2]|0)+1|0;c[g>>2]=(c[g>>2]|0)+(c[(c[344+(m<<2)>>2]|0)+(n<<2)>>2]|0)}}while((c[h>>2]|0)>0);l=d;return c[g>>2]|0}function ub(a){a=a|0;var b=0,d=0,e=0,f=0;b=l;l=l+16|0;d=b+4|0;e=b;c[d>>2]=a;a=c[d>>2]|0;a:do if((a|0)<16e3)if((a|0)<12e3){switch(a|0){case 8e3:break;default:{f=7;break a}}c[e>>2]=6;break}else{switch(a|0){case 12e3:break;default:{f=7;break a}}c[e>>2]=4;break}else{if((a|0)<24e3){switch(a|0){case 16e3:break;default:{f=7;break a}}c[e>>2]=3;break}if((a|0)<48e3){switch(a|0){case 24e3:break;default:{f=7;break a}}c[e>>2]=2;break}else{switch(a|0){case 48e3:break;default:{f=7;break a}}c[e>>2]=1;break}}while(0);if((f|0)==7)c[e>>2]=0;l=b;return c[e>>2]|0}function vb(a,b,d,e,f,h,i,j,k,m,n){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;h=+h;i=+i;j=j|0;k=k|0;m=m|0;n=n|0;var o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0;o=l;l=l+96|0;p=o+92|0;q=o+88|0;r=o+84|0;s=o+80|0;t=o+76|0;u=o+72|0;v=o+68|0;w=o+64|0;x=o+60|0;y=o+56|0;z=o+52|0;A=o+48|0;B=o+44|0;C=o+40|0;D=o+36|0;E=o+32|0;F=o+28|0;G=o+24|0;H=o+20|0;I=o+16|0;J=o+12|0;K=o+8|0;L=o+4|0;M=o;c[p>>2]=a;c[q>>2]=b;c[r>>2]=d;c[s>>2]=e;c[t>>2]=f;g[u>>2]=h;g[v>>2]=i;c[w>>2]=j;c[x>>2]=k;c[y>>2]=m;c[z>>2]=n;if(+g[u>>2]==0.0&+g[v>>2]==0.0){if((c[q>>2]|0)==(c[p>>2]|0)){l=o;return}Le(c[p>>2]|0,c[q>>2]|0,(c[t>>2]<<2)+0|0)|0;l=o;return}g[B>>2]=+g[u>>2]*+g[5524+((c[w>>2]|0)*12|0)>>2];g[C>>2]=+g[u>>2]*+g[5524+((c[w>>2]|0)*12|0)+4>>2];g[D>>2]=+g[u>>2]*+g[5524+((c[w>>2]|0)*12|0)+8>>2];g[E>>2]=+g[v>>2]*+g[5524+((c[x>>2]|0)*12|0)>>2];g[F>>2]=+g[v>>2]*+g[5524+((c[x>>2]|0)*12|0)+4>>2];g[G>>2]=+g[v>>2]*+g[5524+((c[x>>2]|0)*12|0)+8>>2];g[I>>2]=+g[(c[q>>2]|0)+(0-(c[s>>2]|0)+1<<2)>>2];g[J>>2]=+g[(c[q>>2]|0)+(0-(c[s>>2]|0)<<2)>>2];g[K>>2]=+g[(c[q>>2]|0)+(0-(c[s>>2]|0)-1<<2)>>2];g[L>>2]=+g[(c[q>>2]|0)+(0-(c[s>>2]|0)-2<<2)>>2];if((+g[u>>2]==+g[v>>2]?(c[r>>2]|0)==(c[s>>2]|0):0)?(c[w>>2]|0)==(c[x>>2]|0):0)c[z>>2]=0;c[A>>2]=0;while(1){if((c[A>>2]|0)>=(c[z>>2]|0))break;g[H>>2]=+g[(c[q>>2]|0)+((c[A>>2]|0)-(c[s>>2]|0)+2<<2)>>2];g[M>>2]=+g[(c[y>>2]|0)+(c[A>>2]<<2)>>2]*+g[(c[y>>2]|0)+(c[A>>2]<<2)>>2];g[(c[p>>2]|0)+(c[A>>2]<<2)>>2]=+g[(c[q>>2]|0)+(c[A>>2]<<2)>>2]+(1.0-+g[M>>2])*+g[B>>2]*+g[(c[q>>2]|0)+((c[A>>2]|0)-(c[r>>2]|0)<<2)>>2]+(1.0-+g[M>>2])*+g[C>>2]*(+g[(c[q>>2]|0)+((c[A>>2]|0)-(c[r>>2]|0)+1<<2)>>2]+ +g[(c[q>>2]|0)+((c[A>>2]|0)-(c[r>>2]|0)-1<<2)>>2])+(1.0-+g[M>>2])*+g[D>>2]*(+g[(c[q>>2]|0)+((c[A>>2]|0)-(c[r>>2]|0)+2<<2)>>2]+ +g[(c[q>>2]|0)+((c[A>>2]|0)-(c[r>>2]|0)-2<<2)>>2])+ +g[M>>2]*+g[E>>2]*+g[J>>2]+ +g[M>>2]*+g[F>>2]*(+g[I>>2]+ +g[K>>2])+ +g[M>>2]*+g[G>>2]*(+g[H>>2]+ +g[L>>2]);g[L>>2]=+g[K>>2];g[K>>2]=+g[J>>2];g[J>>2]=+g[I>>2];g[I>>2]=+g[H>>2];c[A>>2]=(c[A>>2]|0)+1}if(!(+g[v>>2]==0.0)){wb((c[p>>2]|0)+(c[A>>2]<<2)|0,(c[q>>2]|0)+(c[A>>2]<<2)|0,c[s>>2]|0,(c[t>>2]|0)-(c[A>>2]|0)|0,+g[E>>2],+g[F>>2],+g[G>>2]);l=o;return}if((c[q>>2]|0)==(c[p>>2]|0)){l=o;return}Le((c[p>>2]|0)+(c[z>>2]<<2)|0,(c[q>>2]|0)+(c[z>>2]<<2)|0,((c[t>>2]|0)-(c[z>>2]|0)<<2)+0|0)|0;l=o;return}function wb(a,b,d,e,f,h,i){a=a|0;b=b|0;d=d|0;e=e|0;f=+f;h=+h;i=+i;var j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0;j=l;l=l+64|0;k=j+48|0;m=j+44|0;n=j+40|0;o=j+36|0;p=j+32|0;q=j+28|0;r=j+24|0;s=j+20|0;t=j+16|0;u=j+12|0;v=j+8|0;w=j+4|0;x=j;c[k>>2]=a;c[m>>2]=b;c[n>>2]=d;c[o>>2]=e;g[p>>2]=f;g[q>>2]=h;g[r>>2]=i;g[w>>2]=+g[(c[m>>2]|0)+(0-(c[n>>2]|0)-2<<2)>>2];g[v>>2]=+g[(c[m>>2]|0)+(0-(c[n>>2]|0)-1<<2)>>2];g[u>>2]=+g[(c[m>>2]|0)+(0-(c[n>>2]|0)<<2)>>2];g[t>>2]=+g[(c[m>>2]|0)+(0-(c[n>>2]|0)+1<<2)>>2];c[x>>2]=0;while(1){if((c[x>>2]|0)>=(c[o>>2]|0))break;g[s>>2]=+g[(c[m>>2]|0)+((c[x>>2]|0)-(c[n>>2]|0)+2<<2)>>2];g[(c[k>>2]|0)+(c[x>>2]<<2)>>2]=+g[(c[m>>2]|0)+(c[x>>2]<<2)>>2]+ +g[p>>2]*+g[u>>2]+ +g[q>>2]*(+g[t>>2]+ +g[v>>2])+ +g[r>>2]*(+g[s>>2]+ +g[w>>2]);g[w>>2]=+g[v>>2];g[v>>2]=+g[u>>2];g[u>>2]=+g[t>>2];g[t>>2]=+g[s>>2];c[x>>2]=(c[x>>2]|0)+1}l=j;return}function xb(a,e,f,g){a=a|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,m=0,n=0,o=0;h=l;l=l+32|0;i=h+20|0;j=h+16|0;k=h+12|0;m=h+8|0;n=h+4|0;o=h;c[i>>2]=a;c[j>>2]=e;c[k>>2]=f;c[m>>2]=g;c[n>>2]=0;while(1){if((c[n>>2]|0)>=(c[(c[i>>2]|0)+8>>2]|0))break;c[o>>2]=(b[(c[(c[i>>2]|0)+32>>2]|0)+((c[n>>2]|0)+1<<1)>>1]|0)-(b[(c[(c[i>>2]|0)+32>>2]|0)+(c[n>>2]<<1)>>1]|0)<<c[k>>2];g=R(c[(c[i>>2]|0)+8>>2]|0,(c[k>>2]<<1)+(c[m>>2]|0)-1|0)|0;f=R((d[(c[(c[i>>2]|0)+92+12>>2]|0)+(g+(c[n>>2]|0))>>0]|0)+64|0,c[m>>2]|0)|0;g=(R(f,c[o>>2]|0)|0)>>2;c[(c[j>>2]|0)+(c[n>>2]<<2)>>2]=g;c[n>>2]=(c[n>>2]|0)+1}l=h;return}function yb(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0;e=l;l=l+32|0;f=e+20|0;g=e+16|0;h=e+12|0;i=e+8|0;j=e+4|0;k=e;c[g>>2]=a;c[h>>2]=b;c[i>>2]=d;c[j>>2]=0;a:while(1){if((c[j>>2]|0)>=1){m=12;break}c[k>>2]=0;while(1){if((c[k>>2]|0)>=4)break;if((c[g>>2]|0)==(c[c[5560+(c[j>>2]<<2)>>2]>>2]|0)?(c[h>>2]<<c[k>>2]|0)==(R(c[(c[5560+(c[j>>2]<<2)>>2]|0)+44>>2]|0,c[(c[5560+(c[j>>2]<<2)>>2]|0)+40>>2]|0)|0):0){m=7;break a}c[k>>2]=(c[k>>2]|0)+1}c[j>>2]=(c[j>>2]|0)+1}if((m|0)==7){if(c[i>>2]|0)c[c[i>>2]>>2]=0;c[f>>2]=c[5560+(c[j>>2]<<2)>>2];n=c[f>>2]|0;l=e;return n|0}else if((m|0)==12){if(c[i>>2]|0)c[c[i>>2]>>2]=-1;c[f>>2]=0;n=c[f>>2]|0;l=e;return n|0}return 0}function zb(a,e,f,g,h,i,j,k,m,n,o,p,q,r,s,t,u,v,w){a=a|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;k=k|0;m=m|0;n=n|0;o=o|0;p=p|0;q=q|0;r=r|0;s=s|0;t=t|0;u=u|0;v=v|0;w=w|0;var x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,$=0,aa=0,ba=0,ca=0,ea=0,fa=0,ha=0,ia=0,ja=0,ka=0,la=0,ma=0,na=0,oa=0,pa=0,qa=0,ra=0;x=l;l=l+160|0;y=x+144|0;z=x+140|0;A=x+136|0;B=x+132|0;C=x+128|0;D=x+124|0;E=x+120|0;F=x+116|0;G=x+112|0;H=x+108|0;I=x+104|0;J=x+100|0;K=x+96|0;L=x+92|0;M=x+88|0;N=x+84|0;O=x+80|0;P=x+76|0;Q=x+72|0;S=x+68|0;T=x+64|0;U=x+60|0;V=x+56|0;W=x+52|0;X=x+48|0;Y=x+44|0;Z=x+40|0;_=x+36|0;$=x+32|0;aa=x+28|0;ba=x+24|0;ca=x+20|0;ea=x+16|0;fa=x+12|0;ha=x+8|0;ia=x+4|0;ja=x;c[y>>2]=a;c[z>>2]=e;c[A>>2]=f;c[B>>2]=g;c[C>>2]=h;c[D>>2]=i;c[E>>2]=j;c[F>>2]=k;c[G>>2]=m;c[H>>2]=n;c[I>>2]=o;c[J>>2]=p;c[K>>2]=q;c[L>>2]=r;c[M>>2]=s;c[N>>2]=t;c[O>>2]=u;c[P>>2]=v;c[Q>>2]=w;c[G>>2]=(c[G>>2]|0)>0?c[G>>2]|0:0;c[U>>2]=c[(c[y>>2]|0)+8>>2];c[X>>2]=c[z>>2];c[Y>>2]=(c[G>>2]|0)>=8?8:0;c[G>>2]=(c[G>>2]|0)-(c[Y>>2]|0);c[_>>2]=0;c[Z>>2]=0;do if((c[L>>2]|0)==2){c[Z>>2]=d[24771+((c[A>>2]|0)-(c[z>>2]|0))>>0];if((c[Z>>2]|0)>(c[G>>2]|0)){c[Z>>2]=0;break}else{c[G>>2]=(c[G>>2]|0)-(c[Z>>2]|0);c[_>>2]=(c[G>>2]|0)>=8?8:0;c[G>>2]=(c[G>>2]|0)-(c[_>>2]|0);break}}while(0);w=c[U>>2]|0;c[$>>2]=da()|0;v=l;l=l+((1*(w<<2)|0)+15&-16)|0;w=l;l=l+((1*(c[U>>2]<<2)|0)+15&-16)|0;u=l;l=l+((1*(c[U>>2]<<2)|0)+15&-16)|0;t=l;l=l+((1*(c[U>>2]<<2)|0)+15&-16)|0;c[V>>2]=c[z>>2];while(1){if((c[V>>2]|0)>=(c[A>>2]|0))break;if((c[L>>2]<<3|0)>(((b[(c[(c[y>>2]|0)+32>>2]|0)+((c[V>>2]|0)+1<<1)>>1]|0)-(b[(c[(c[y>>2]|0)+32>>2]|0)+(c[V>>2]<<1)>>1]|0)|0)*3<<c[M>>2]<<3>>4|0))ka=c[L>>2]<<3;else ka=((b[(c[(c[y>>2]|0)+32>>2]|0)+((c[V>>2]|0)+1<<1)>>1]|0)-(b[(c[(c[y>>2]|0)+32>>2]|0)+(c[V>>2]<<1)>>1]|0)|0)*3<<c[M>>2]<<3>>4;c[u+(c[V>>2]<<2)>>2]=ka;s=R(c[L>>2]|0,(b[(c[(c[y>>2]|0)+32>>2]|0)+((c[V>>2]|0)+1<<1)>>1]|0)-(b[(c[(c[y>>2]|0)+32>>2]|0)+(c[V>>2]<<1)>>1]|0)|0)|0;r=R(s,(c[D>>2]|0)-5-(c[M>>2]|0)|0)|0;s=R(r,(c[A>>2]|0)-(c[V>>2]|0)-1|0)|0;r=(R(s,1<<(c[M>>2]|0)+3)|0)>>6;c[t+(c[V>>2]<<2)>>2]=r;if(((b[(c[(c[y>>2]|0)+32>>2]|0)+((c[V>>2]|0)+1<<1)>>1]|0)-(b[(c[(c[y>>2]|0)+32>>2]|0)+(c[V>>2]<<1)>>1]|0)<<c[M>>2]|0)==1){r=t+(c[V>>2]<<2)|0;c[r>>2]=(c[r>>2]|0)-(c[L>>2]<<3)}c[V>>2]=(c[V>>2]|0)+1}c[S>>2]=1;c[T>>2]=(c[(c[y>>2]|0)+48>>2]|0)-1;do{c[aa>>2]=0;c[ba>>2]=0;c[ca>>2]=(c[S>>2]|0)+(c[T>>2]|0)>>1;c[V>>2]=c[A>>2];while(1){D=c[V>>2]|0;c[V>>2]=D+-1;if((D|0)<=(c[z>>2]|0))break;c[fa>>2]=(b[(c[(c[y>>2]|0)+32>>2]|0)+((c[V>>2]|0)+1<<1)>>1]|0)-(b[(c[(c[y>>2]|0)+32>>2]|0)+(c[V>>2]<<1)>>1]|0);D=R(c[L>>2]|0,c[fa>>2]|0)|0;ka=R(c[ca>>2]|0,c[U>>2]|0)|0;r=R(D,d[(c[(c[y>>2]|0)+52>>2]|0)+(ka+(c[V>>2]|0))>>0]|0)|0;c[ea>>2]=r<<c[M>>2]>>2;if((c[ea>>2]|0)>0){if(0>((c[ea>>2]|0)+(c[t+(c[V>>2]<<2)>>2]|0)|0))la=0;else la=(c[ea>>2]|0)+(c[t+(c[V>>2]<<2)>>2]|0)|0;c[ea>>2]=la}c[ea>>2]=(c[ea>>2]|0)+(c[(c[B>>2]|0)+(c[V>>2]<<2)>>2]|0);if(!(c[aa>>2]|0?1:(c[ea>>2]|0)>=(c[u+(c[V>>2]<<2)>>2]|0))){if((c[ea>>2]|0)<(c[L>>2]<<3|0))continue;c[ba>>2]=(c[ba>>2]|0)+(c[L>>2]<<3);continue}c[aa>>2]=1;if((c[ea>>2]|0)<(c[(c[C>>2]|0)+(c[V>>2]<<2)>>2]|0))ma=c[ea>>2]|0;else ma=c[(c[C>>2]|0)+(c[V>>2]<<2)>>2]|0;c[ba>>2]=(c[ba>>2]|0)+ma}r=c[ca>>2]|0;if((c[ba>>2]|0)>(c[G>>2]|0))c[T>>2]=r-1;else c[S>>2]=r+1}while((c[S>>2]|0)<=(c[T>>2]|0));ba=c[S>>2]|0;c[S>>2]=ba+-1;c[T>>2]=ba;c[V>>2]=c[z>>2];while(1){na=c[y>>2]|0;if((c[V>>2]|0)>=(c[A>>2]|0))break;c[ja>>2]=(b[(c[na+32>>2]|0)+((c[V>>2]|0)+1<<1)>>1]|0)-(b[(c[(c[y>>2]|0)+32>>2]|0)+(c[V>>2]<<1)>>1]|0);ba=R(c[L>>2]|0,c[ja>>2]|0)|0;ca=R(c[S>>2]|0,c[U>>2]|0)|0;ma=R(ba,d[(c[(c[y>>2]|0)+52>>2]|0)+(ca+(c[V>>2]|0))>>0]|0)|0;c[ha>>2]=ma<<c[M>>2]>>2;if((c[T>>2]|0)>=(c[(c[y>>2]|0)+48>>2]|0))oa=c[(c[C>>2]|0)+(c[V>>2]<<2)>>2]|0;else{ma=R(c[L>>2]|0,c[ja>>2]|0)|0;ca=R(c[T>>2]|0,c[U>>2]|0)|0;ba=R(ma,d[(c[(c[y>>2]|0)+52>>2]|0)+(ca+(c[V>>2]|0))>>0]|0)|0;oa=ba<<c[M>>2]>>2}c[ia>>2]=oa;if((c[ha>>2]|0)>0){if(0>((c[ha>>2]|0)+(c[t+(c[V>>2]<<2)>>2]|0)|0))pa=0;else pa=(c[ha>>2]|0)+(c[t+(c[V>>2]<<2)>>2]|0)|0;c[ha>>2]=pa}if((c[ia>>2]|0)>0){if(0>((c[ia>>2]|0)+(c[t+(c[V>>2]<<2)>>2]|0)|0))qa=0;else qa=(c[ia>>2]|0)+(c[t+(c[V>>2]<<2)>>2]|0)|0;c[ia>>2]=qa}if((c[S>>2]|0)>0)c[ha>>2]=(c[ha>>2]|0)+(c[(c[B>>2]|0)+(c[V>>2]<<2)>>2]|0);c[ia>>2]=(c[ia>>2]|0)+(c[(c[B>>2]|0)+(c[V>>2]<<2)>>2]|0);if((c[(c[B>>2]|0)+(c[V>>2]<<2)>>2]|0)>0)c[X>>2]=c[V>>2];if(0>((c[ia>>2]|0)-(c[ha>>2]|0)|0))ra=0;else ra=(c[ia>>2]|0)-(c[ha>>2]|0)|0;c[ia>>2]=ra;c[v+(c[V>>2]<<2)>>2]=c[ha>>2];c[w+(c[V>>2]<<2)>>2]=c[ia>>2];c[V>>2]=(c[V>>2]|0)+1}c[W>>2]=Ab(na,c[z>>2]|0,c[A>>2]|0,c[X>>2]|0,v,w,u,c[C>>2]|0,c[G>>2]|0,c[H>>2]|0,c[Y>>2]|0,c[E>>2]|0,c[Z>>2]|0,c[F>>2]|0,c[_>>2]|0,c[I>>2]|0,c[J>>2]|0,c[K>>2]|0,c[L>>2]|0,c[M>>2]|0,c[N>>2]|0,c[O>>2]|0,c[P>>2]|0,c[Q>>2]|0)|0;Q=c[W>>2]|0;ga(c[$>>2]|0);l=x;return Q|0}function Ab(a,e,f,g,h,i,j,k,m,n,o,p,q,r,s,t,u,v,w,x,y,z,A,B){a=a|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;k=k|0;m=m|0;n=n|0;o=o|0;p=p|0;q=q|0;r=r|0;s=s|0;t=t|0;u=u|0;v=v|0;w=w|0;x=x|0;y=y|0;z=z|0;A=A|0;B=B|0;var C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,$=0,aa=0,ba=0,ca=0,da=0,ea=0,fa=0,ga=0,ha=0,ia=0,ja=0,ka=0,la=0,ma=0,na=0,oa=0,pa=0,qa=0,ra=0,sa=0,ta=0,ua=0,va=0,wa=0,xa=0,ya=0,za=0,Aa=0,Ba=0,Ca=0,Da=0,Ea=0,Fa=0,Ga=0,Ha=0,Ia=0,Ja=0,Ka=0,La=0,Ma=0,Na=0,Oa=0,Ra=0,Sa=0,Ta=0;C=l;l=l+224|0;D=C+208|0;E=C+204|0;F=C+200|0;G=C+196|0;H=C+192|0;I=C+188|0;J=C+184|0;K=C+180|0;L=C+176|0;M=C+172|0;N=C+168|0;O=C+164|0;P=C+160|0;Q=C+156|0;S=C+152|0;T=C+148|0;U=C+144|0;V=C+140|0;W=C+136|0;X=C+132|0;Y=C+128|0;Z=C+124|0;_=C+120|0;$=C+116|0;aa=C+112|0;ba=C+108|0;ca=C+104|0;da=C+100|0;ea=C+96|0;fa=C+92|0;ga=C+88|0;ha=C+84|0;ia=C+80|0;ja=C+76|0;ka=C+72|0;la=C+68|0;ma=C+64|0;na=C+60|0;oa=C+56|0;pa=C+52|0;qa=C+48|0;ra=C+44|0;sa=C+40|0;ta=C+36|0;ua=C+32|0;va=C+28|0;wa=C+24|0;xa=C+20|0;ya=C+16|0;za=C+12|0;Aa=C+8|0;Ba=C+4|0;Ca=C;c[D>>2]=a;c[E>>2]=e;c[F>>2]=f;c[G>>2]=g;c[H>>2]=h;c[I>>2]=i;c[J>>2]=j;c[K>>2]=k;c[L>>2]=m;c[M>>2]=n;c[N>>2]=o;c[O>>2]=p;c[P>>2]=q;c[Q>>2]=r;c[S>>2]=s;c[T>>2]=t;c[U>>2]=u;c[V>>2]=v;c[W>>2]=w;c[X>>2]=x;c[Y>>2]=y;c[Z>>2]=z;c[_>>2]=A;c[$>>2]=B;c[ha>>2]=-1;c[ia>>2]=c[W>>2]<<3;c[ga>>2]=(c[W>>2]|0)>1&1;c[fa>>2]=c[X>>2]<<3;c[ba>>2]=0;c[ca>>2]=64;c[da>>2]=0;while(1){if((c[da>>2]|0)>=6)break;c[na>>2]=(c[ba>>2]|0)+(c[ca>>2]|0)>>1;c[aa>>2]=0;c[la>>2]=0;c[ea>>2]=c[F>>2];while(1){B=c[ea>>2]|0;c[ea>>2]=B+-1;if((B|0)<=(c[E>>2]|0))break;c[oa>>2]=(c[(c[H>>2]|0)+(c[ea>>2]<<2)>>2]|0)+((R(c[na>>2]|0,c[(c[I>>2]|0)+(c[ea>>2]<<2)>>2]|0)|0)>>6);if(!(c[la>>2]|0?1:(c[oa>>2]|0)>=(c[(c[J>>2]|0)+(c[ea>>2]<<2)>>2]|0))){if((c[oa>>2]|0)<(c[ia>>2]|0))continue;c[aa>>2]=(c[aa>>2]|0)+(c[ia>>2]|0);continue}c[la>>2]=1;if((c[oa>>2]|0)<(c[(c[K>>2]|0)+(c[ea>>2]<<2)>>2]|0))Da=c[oa>>2]|0;else Da=c[(c[K>>2]|0)+(c[ea>>2]<<2)>>2]|0;c[aa>>2]=(c[aa>>2]|0)+Da}B=c[na>>2]|0;if((c[aa>>2]|0)>(c[L>>2]|0))c[ca>>2]=B;else c[ba>>2]=B;c[da>>2]=(c[da>>2]|0)+1}c[aa>>2]=0;c[la>>2]=0;c[ea>>2]=c[F>>2];while(1){da=c[ea>>2]|0;c[ea>>2]=da+-1;if((da|0)<=(c[E>>2]|0))break;c[pa>>2]=(c[(c[H>>2]|0)+(c[ea>>2]<<2)>>2]|0)+((R(c[ba>>2]|0,c[(c[I>>2]|0)+(c[ea>>2]<<2)>>2]|0)|0)>>6);do if(!(c[la>>2]|0?1:(c[pa>>2]|0)>=(c[(c[J>>2]|0)+(c[ea>>2]<<2)>>2]|0)))if((c[pa>>2]|0)>=(c[ia>>2]|0)){c[pa>>2]=c[ia>>2];break}else{c[pa>>2]=0;break}else c[la>>2]=1;while(0);if((c[pa>>2]|0)<(c[(c[K>>2]|0)+(c[ea>>2]<<2)>>2]|0))Ea=c[pa>>2]|0;else Ea=c[(c[K>>2]|0)+(c[ea>>2]<<2)>>2]|0;c[pa>>2]=Ea;c[(c[T>>2]|0)+(c[ea>>2]<<2)>>2]=c[pa>>2];c[aa>>2]=(c[aa>>2]|0)+(c[pa>>2]|0)}c[ha>>2]=c[F>>2];while(1){c[ea>>2]=(c[ha>>2]|0)-1;if((c[ea>>2]|0)<=(c[G>>2]|0)){Fa=29;break}c[ja>>2]=(c[L>>2]|0)-(c[aa>>2]|0);c[ka>>2]=Bb(c[ja>>2]|0,(b[(c[(c[D>>2]|0)+32>>2]|0)+(c[ha>>2]<<1)>>1]|0)-(b[(c[(c[D>>2]|0)+32>>2]|0)+(c[E>>2]<<1)>>1]|0)|0)|0;pa=R((b[(c[(c[D>>2]|0)+32>>2]|0)+(c[ha>>2]<<1)>>1]|0)-(b[(c[(c[D>>2]|0)+32>>2]|0)+(c[E>>2]<<1)>>1]|0)|0,c[ka>>2]|0)|0;c[ja>>2]=(c[ja>>2]|0)-pa;if(((c[ja>>2]|0)-((b[(c[(c[D>>2]|0)+32>>2]|0)+(c[ea>>2]<<1)>>1]|0)-(b[(c[(c[D>>2]|0)+32>>2]|0)+(c[E>>2]<<1)>>1]|0))|0)>0)Ga=(c[ja>>2]|0)-((b[(c[(c[D>>2]|0)+32>>2]|0)+(c[ea>>2]<<1)>>1]|0)-(b[(c[(c[D>>2]|0)+32>>2]|0)+(c[E>>2]<<1)>>1]|0))|0;else Ga=0;c[sa>>2]=Ga;c[qa>>2]=(b[(c[(c[D>>2]|0)+32>>2]|0)+(c[ha>>2]<<1)>>1]|0)-(b[(c[(c[D>>2]|0)+32>>2]|0)+(c[ea>>2]<<1)>>1]|0);pa=(c[(c[T>>2]|0)+(c[ea>>2]<<2)>>2]|0)+(R(c[ka>>2]|0,c[qa>>2]|0)|0)|0;c[ra>>2]=pa+(c[sa>>2]|0);if((c[(c[J>>2]|0)+(c[ea>>2]<<2)>>2]|0)>((c[ia>>2]|0)+8|0))Ha=c[(c[J>>2]|0)+(c[ea>>2]<<2)>>2]|0;else Ha=(c[ia>>2]|0)+8|0;if((c[ra>>2]|0)>=(Ha|0)){if(!(c[Z>>2]|0)){if(Va(c[Y>>2]|0,1)|0)break}else{if((c[ha>>2]|0)<=((c[E>>2]|0)+2|0)){Fa=40;break}pa=R((c[ea>>2]|0)<(c[_>>2]|0)?7:9,c[qa>>2]|0)|0;if((c[ra>>2]|0)>(pa<<c[X>>2]<<3>>4|0)?(c[ea>>2]|0)<=(c[$>>2]|0):0){Fa=40;break}Ua(c[Y>>2]|0,0,1)}c[aa>>2]=(c[aa>>2]|0)+8;c[ra>>2]=(c[ra>>2]|0)-8}c[aa>>2]=(c[aa>>2]|0)-((c[(c[T>>2]|0)+(c[ea>>2]<<2)>>2]|0)+(c[P>>2]|0));if((c[P>>2]|0)>0)c[P>>2]=d[24771+((c[ea>>2]|0)-(c[E>>2]|0))>>0];c[aa>>2]=(c[aa>>2]|0)+(c[P>>2]|0);if((c[ra>>2]|0)>=(c[ia>>2]|0)){c[aa>>2]=(c[aa>>2]|0)+(c[ia>>2]|0);Ia=c[ia>>2]|0;Ja=(c[T>>2]|0)+(c[ea>>2]<<2)|0}else{Ia=0;Ja=(c[T>>2]|0)+(c[ea>>2]<<2)|0}c[Ja>>2]=Ia;c[ha>>2]=(c[ha>>2]|0)+-1}if((Fa|0)==29)c[L>>2]=(c[L>>2]|0)+(c[N>>2]|0);else if((Fa|0)==40)Ua(c[Y>>2]|0,1,1);do if((c[P>>2]|0)>0){if(!(c[Z>>2]|0)){Fa=c[E>>2]|0;N=Fa+(Qa(c[Y>>2]|0,(c[ha>>2]|0)+1-(c[E>>2]|0)|0)|0)|0;c[c[O>>2]>>2]=N;break}if((c[c[O>>2]>>2]|0)<(c[ha>>2]|0))Ka=c[c[O>>2]>>2]|0;else Ka=c[ha>>2]|0;c[c[O>>2]>>2]=Ka;Pa(c[Y>>2]|0,(c[c[O>>2]>>2]|0)-(c[E>>2]|0)|0,(c[ha>>2]|0)+1-(c[E>>2]|0)|0)}else c[c[O>>2]>>2]=0;while(0);if((c[c[O>>2]>>2]|0)<=(c[E>>2]|0)){c[L>>2]=(c[L>>2]|0)+(c[S>>2]|0);c[S>>2]=0}do if((c[S>>2]|0)>0){Ka=c[Y>>2]|0;if(c[Z>>2]|0){Ua(Ka,c[c[Q>>2]>>2]|0,1);break}else{P=Va(Ka,1)|0;c[c[Q>>2]>>2]=P;break}}else c[c[Q>>2]>>2]=0;while(0);c[ja>>2]=(c[L>>2]|0)-(c[aa>>2]|0);c[ka>>2]=Bb(c[ja>>2]|0,(b[(c[(c[D>>2]|0)+32>>2]|0)+(c[ha>>2]<<1)>>1]|0)-(b[(c[(c[D>>2]|0)+32>>2]|0)+(c[E>>2]<<1)>>1]|0)|0)|0;aa=R((b[(c[(c[D>>2]|0)+32>>2]|0)+(c[ha>>2]<<1)>>1]|0)-(b[(c[(c[D>>2]|0)+32>>2]|0)+(c[E>>2]<<1)>>1]|0)|0,c[ka>>2]|0)|0;c[ja>>2]=(c[ja>>2]|0)-aa;c[ea>>2]=c[E>>2];while(1){if((c[ea>>2]|0)>=(c[ha>>2]|0))break;aa=R(c[ka>>2]|0,(b[(c[(c[D>>2]|0)+32>>2]|0)+((c[ea>>2]|0)+1<<1)>>1]|0)-(b[(c[(c[D>>2]|0)+32>>2]|0)+(c[ea>>2]<<1)>>1]|0)|0)|0;L=(c[T>>2]|0)+(c[ea>>2]<<2)|0;c[L>>2]=(c[L>>2]|0)+aa;c[ea>>2]=(c[ea>>2]|0)+1}c[ea>>2]=c[E>>2];while(1){if((c[ea>>2]|0)>=(c[ha>>2]|0))break;if((c[ja>>2]|0)<((b[(c[(c[D>>2]|0)+32>>2]|0)+((c[ea>>2]|0)+1<<1)>>1]|0)-(b[(c[(c[D>>2]|0)+32>>2]|0)+(c[ea>>2]<<1)>>1]|0)|0))La=c[ja>>2]|0;else La=(b[(c[(c[D>>2]|0)+32>>2]|0)+((c[ea>>2]|0)+1<<1)>>1]|0)-(b[(c[(c[D>>2]|0)+32>>2]|0)+(c[ea>>2]<<1)>>1]|0)|0;c[ta>>2]=La;ka=(c[T>>2]|0)+(c[ea>>2]<<2)|0;c[ka>>2]=(c[ka>>2]|0)+(c[ta>>2]|0);c[ja>>2]=(c[ja>>2]|0)-(c[ta>>2]|0);c[ea>>2]=(c[ea>>2]|0)+1}c[ma>>2]=0;c[ea>>2]=c[E>>2];while(1){if((c[ea>>2]|0)>=(c[ha>>2]|0))break;c[ua>>2]=(b[(c[(c[D>>2]|0)+32>>2]|0)+((c[ea>>2]|0)+1<<1)>>1]|0)-(b[(c[(c[D>>2]|0)+32>>2]|0)+(c[ea>>2]<<1)>>1]|0);c[va>>2]=c[ua>>2]<<c[X>>2];c[Aa>>2]=(c[(c[T>>2]|0)+(c[ea>>2]<<2)>>2]|0)+(c[ma>>2]|0);E=c[Aa>>2]|0;if((c[va>>2]|0)>1){if((E-(c[(c[K>>2]|0)+(c[ea>>2]<<2)>>2]|0)|0)>0)Ma=(c[Aa>>2]|0)-(c[(c[K>>2]|0)+(c[ea>>2]<<2)>>2]|0)|0;else Ma=0;c[za>>2]=Ma;c[(c[T>>2]|0)+(c[ea>>2]<<2)>>2]=(c[Aa>>2]|0)-(c[za>>2]|0);ta=R(c[W>>2]|0,c[va>>2]|0)|0;if((c[W>>2]|0)==2&(c[va>>2]|0)>2?!(c[c[Q>>2]>>2]|0):0)Na=(c[ea>>2]|0)<(c[c[O>>2]>>2]|0);else Na=0;c[wa>>2]=ta+(Na?1:0);c[ya>>2]=R(c[wa>>2]|0,(b[(c[(c[D>>2]|0)+56>>2]|0)+(c[ea>>2]<<1)>>1]|0)+(c[fa>>2]|0)|0)|0;c[xa>>2]=(c[ya>>2]>>1)-((c[wa>>2]|0)*21|0);if((c[va>>2]|0)==2)c[xa>>2]=(c[xa>>2]|0)+(c[wa>>2]<<3>>2);if(((c[(c[T>>2]|0)+(c[ea>>2]<<2)>>2]|0)+(c[xa>>2]|0)|0)>=(c[wa>>2]<<1<<3|0)){if(((c[(c[T>>2]|0)+(c[ea>>2]<<2)>>2]|0)+(c[xa>>2]|0)|0)<((c[wa>>2]|0)*3<<3|0))c[xa>>2]=(c[xa>>2]|0)+(c[ya>>2]>>3)}else c[xa>>2]=(c[xa>>2]|0)+(c[ya>>2]>>2);if(0>((c[(c[T>>2]|0)+(c[ea>>2]<<2)>>2]|0)+(c[xa>>2]|0)+(c[wa>>2]<<2)|0))Oa=0;else Oa=(c[(c[T>>2]|0)+(c[ea>>2]<<2)>>2]|0)+(c[xa>>2]|0)+(c[wa>>2]<<2)|0;c[(c[U>>2]|0)+(c[ea>>2]<<2)>>2]=Oa;ta=(Bb(c[(c[U>>2]|0)+(c[ea>>2]<<2)>>2]|0,c[wa>>2]|0)|0)>>>3;c[(c[U>>2]|0)+(c[ea>>2]<<2)>>2]=ta;ta=R(c[W>>2]|0,c[(c[U>>2]|0)+(c[ea>>2]<<2)>>2]|0)|0;if((ta|0)>(c[(c[T>>2]|0)+(c[ea>>2]<<2)>>2]>>3|0))c[(c[U>>2]|0)+(c[ea>>2]<<2)>>2]=c[(c[T>>2]|0)+(c[ea>>2]<<2)>>2]>>c[ga>>2]>>3;if((c[(c[U>>2]|0)+(c[ea>>2]<<2)>>2]|0)<8)Ra=c[(c[U>>2]|0)+(c[ea>>2]<<2)>>2]|0;else Ra=8;c[(c[U>>2]|0)+(c[ea>>2]<<2)>>2]=Ra;ta=R(c[(c[U>>2]|0)+(c[ea>>2]<<2)>>2]|0,c[wa>>2]<<3)|0;c[(c[V>>2]|0)+(c[ea>>2]<<2)>>2]=(ta|0)>=((c[(c[T>>2]|0)+(c[ea>>2]<<2)>>2]|0)+(c[xa>>2]|0)|0)&1;ta=(R(c[W>>2]|0,c[(c[U>>2]|0)+(c[ea>>2]<<2)>>2]|0)|0)<<3;ja=(c[T>>2]|0)+(c[ea>>2]<<2)|0;c[ja>>2]=(c[ja>>2]|0)-ta}else{if(0>(E-(c[W>>2]<<3)|0))Sa=0;else Sa=(c[Aa>>2]|0)-(c[W>>2]<<3)|0;c[za>>2]=Sa;c[(c[T>>2]|0)+(c[ea>>2]<<2)>>2]=(c[Aa>>2]|0)-(c[za>>2]|0);c[(c[U>>2]|0)+(c[ea>>2]<<2)>>2]=0;c[(c[V>>2]|0)+(c[ea>>2]<<2)>>2]=1}if((c[za>>2]|0)>0){if((c[za>>2]>>(c[ga>>2]|0)+3|0)<(8-(c[(c[U>>2]|0)+(c[ea>>2]<<2)>>2]|0)|0))Ta=c[za>>2]>>(c[ga>>2]|0)+3;else Ta=8-(c[(c[U>>2]|0)+(c[ea>>2]<<2)>>2]|0)|0;c[Ba>>2]=Ta;E=(c[U>>2]|0)+(c[ea>>2]<<2)|0;c[E>>2]=(c[E>>2]|0)+(c[Ba>>2]|0);c[Ca>>2]=(R(c[Ba>>2]|0,c[W>>2]|0)|0)<<3;c[(c[V>>2]|0)+(c[ea>>2]<<2)>>2]=(c[Ca>>2]|0)>=((c[za>>2]|0)-(c[ma>>2]|0)|0)&1;c[za>>2]=(c[za>>2]|0)-(c[Ca>>2]|0)}c[ma>>2]=c[za>>2];c[ea>>2]=(c[ea>>2]|0)+1}c[c[M>>2]>>2]=c[ma>>2];while(1){if((c[ea>>2]|0)>=(c[F>>2]|0))break;c[(c[U>>2]|0)+(c[ea>>2]<<2)>>2]=c[(c[T>>2]|0)+(c[ea>>2]<<2)>>2]>>c[ga>>2]>>3;c[(c[T>>2]|0)+(c[ea>>2]<<2)>>2]=0;c[(c[V>>2]|0)+(c[ea>>2]<<2)>>2]=(c[(c[U>>2]|0)+(c[ea>>2]<<2)>>2]|0)<1&1;c[ea>>2]=(c[ea>>2]|0)+1}l=C;return c[ha>>2]|0}function Bb(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=l;l=l+16|0;e=d+4|0;f=d;c[e>>2]=a;c[f>>2]=b;l=d;return ((c[e>>2]|0)>>>0)/((c[f>>2]|0)>>>0)|0|0}function Cb(a){a=a|0;var b=0,d=0;b=l;l=l+16|0;d=b;c[d>>2]=a;a=(c[(c[d>>2]|0)+20>>2]|0)-(32-(U(c[(c[d>>2]|0)+28>>2]|0)|0))|0;l=b;return a|0}function Db(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;d=l;l=l+16|0;e=d+8|0;f=d+4|0;g=d;c[e>>2]=a;c[f>>2]=b;c[g>>2]=32736-(c[e>>2]|0);e=(R(c[g>>2]|0,16384-(c[f>>2]|0)|0)|0)>>>15;l=d;return e|0}function Eb(a,d){a=a|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0;e=l;l=l+64|0;f=e+60|0;g=e+56|0;h=e+52|0;i=e+48|0;j=e+44|0;k=e+40|0;m=e+8|0;n=e+4|0;o=e;c[f>>2]=a;c[g>>2]=d;if((c[(c[f>>2]|0)+8>>2]|0)>0)p=c[(c[f>>2]|0)+8>>2]|0;else p=0;c[o>>2]=p;c[m>>2]=1;c[k>>2]=0;do{c[j>>2]=b[(c[f>>2]|0)+12+(c[k>>2]<<1<<1)>>1];c[i>>2]=b[(c[f>>2]|0)+12+((c[k>>2]<<1)+1<<1)>>1];p=R(c[m+(c[k>>2]<<2)>>2]|0,c[j>>2]|0)|0;c[m+((c[k>>2]|0)+1<<2)>>2]=p;c[k>>2]=(c[k>>2]|0)+1}while((c[i>>2]|0)!=1);c[i>>2]=b[(c[f>>2]|0)+12+((c[k>>2]<<1)-1<<1)>>1];c[n>>2]=(c[k>>2]|0)-1;while(1){if((c[n>>2]|0)<0)break;if(c[n>>2]|0)c[h>>2]=b[(c[f>>2]|0)+12+((c[n>>2]<<1)-1<<1)>>1];else c[h>>2]=1;switch(b[(c[f>>2]|0)+12+(c[n>>2]<<1<<1)>>1]|0){case 2:{Fb(c[g>>2]|0,c[i>>2]|0,c[m+(c[n>>2]<<2)>>2]|0);break}case 4:{Gb(c[g>>2]|0,c[m+(c[n>>2]<<2)>>2]<<c[o>>2],c[f>>2]|0,c[i>>2]|0,c[m+(c[n>>2]<<2)>>2]|0,c[h>>2]|0);break}case 3:{Hb(c[g>>2]|0,c[m+(c[n>>2]<<2)>>2]<<c[o>>2],c[f>>2]|0,c[i>>2]|0,c[m+(c[n>>2]<<2)>>2]|0,c[h>>2]|0);break}case 5:{Ib(c[g>>2]|0,c[m+(c[n>>2]<<2)>>2]<<c[o>>2],c[f>>2]|0,c[i>>2]|0,c[m+(c[n>>2]<<2)>>2]|0,c[h>>2]|0);break}default:{}}c[i>>2]=c[h>>2];c[n>>2]=(c[n>>2]|0)+-1}l=e;return}function Fb(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,h=0,i=0,j=0,k=0,m=0;e=l;l=l+32|0;f=e+28|0;h=e+20|0;i=e+16|0;j=e+12|0;k=e+8|0;m=e;c[f>>2]=a;c[e+24>>2]=b;c[h>>2]=d;g[k>>2]=.7071067690849304;c[j>>2]=0;while(1){if((c[j>>2]|0)>=(c[h>>2]|0))break;c[i>>2]=(c[f>>2]|0)+32;d=c[i>>2]|0;c[m>>2]=c[d>>2];c[m+4>>2]=c[d+4>>2];g[c[i>>2]>>2]=+g[c[f>>2]>>2]-+g[m>>2];g[(c[i>>2]|0)+4>>2]=+g[(c[f>>2]|0)+4>>2]-+g[m+4>>2];d=c[f>>2]|0;g[d>>2]=+g[d>>2]+ +g[m>>2];d=(c[f>>2]|0)+4|0;g[d>>2]=+g[d>>2]+ +g[m+4>>2];g[m>>2]=(+g[(c[i>>2]|0)+8>>2]+ +g[(c[i>>2]|0)+8+4>>2])*+g[k>>2];g[m+4>>2]=(+g[(c[i>>2]|0)+8+4>>2]-+g[(c[i>>2]|0)+8>>2])*+g[k>>2];g[(c[i>>2]|0)+8>>2]=+g[(c[f>>2]|0)+8>>2]-+g[m>>2];g[(c[i>>2]|0)+8+4>>2]=+g[(c[f>>2]|0)+8+4>>2]-+g[m+4>>2];d=(c[f>>2]|0)+8|0;g[d>>2]=+g[d>>2]+ +g[m>>2];d=(c[f>>2]|0)+8+4|0;g[d>>2]=+g[d>>2]+ +g[m+4>>2];g[m>>2]=+g[(c[i>>2]|0)+16+4>>2];g[m+4>>2]=-+g[(c[i>>2]|0)+16>>2];g[(c[i>>2]|0)+16>>2]=+g[(c[f>>2]|0)+16>>2]-+g[m>>2];g[(c[i>>2]|0)+16+4>>2]=+g[(c[f>>2]|0)+16+4>>2]-+g[m+4>>2];d=(c[f>>2]|0)+16|0;g[d>>2]=+g[d>>2]+ +g[m>>2];d=(c[f>>2]|0)+16+4|0;g[d>>2]=+g[d>>2]+ +g[m+4>>2];g[m>>2]=(+g[(c[i>>2]|0)+24+4>>2]-+g[(c[i>>2]|0)+24>>2])*+g[k>>2];g[m+4>>2]=(-+g[(c[i>>2]|0)+24+4>>2]-+g[(c[i>>2]|0)+24>>2])*+g[k>>2];g[(c[i>>2]|0)+24>>2]=+g[(c[f>>2]|0)+24>>2]-+g[m>>2];g[(c[i>>2]|0)+24+4>>2]=+g[(c[f>>2]|0)+24+4>>2]-+g[m+4>>2];d=(c[f>>2]|0)+24|0;g[d>>2]=+g[d>>2]+ +g[m>>2];d=(c[f>>2]|0)+24+4|0;g[d>>2]=+g[d>>2]+ +g[m+4>>2];c[f>>2]=(c[f>>2]|0)+64;c[j>>2]=(c[j>>2]|0)+1}l=e;return}function Gb(a,b,d,e,f,h){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;h=h|0;var i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0;i=l;l=l+128|0;j=i+120|0;k=i+116|0;m=i+112|0;n=i+108|0;o=i+104|0;p=i+100|0;q=i+96|0;r=i+88|0;s=i+80|0;t=i+72|0;u=i+24|0;v=i+20|0;w=i+16|0;x=i+12|0;y=i+8|0;z=i+4|0;A=i;c[j>>2]=a;c[k>>2]=b;c[m>>2]=d;c[n>>2]=e;c[o>>2]=f;c[p>>2]=h;if((c[n>>2]|0)==1){c[q>>2]=0;while(1){if((c[q>>2]|0)>=(c[o>>2]|0))break;g[r>>2]=+g[c[j>>2]>>2]-+g[(c[j>>2]|0)+16>>2];g[r+4>>2]=+g[(c[j>>2]|0)+4>>2]-+g[(c[j>>2]|0)+16+4>>2];h=c[j>>2]|0;g[h>>2]=+g[h>>2]+ +g[(c[j>>2]|0)+16>>2];h=(c[j>>2]|0)+4|0;g[h>>2]=+g[h>>2]+ +g[(c[j>>2]|0)+16+4>>2];g[s>>2]=+g[(c[j>>2]|0)+8>>2]+ +g[(c[j>>2]|0)+24>>2];g[s+4>>2]=+g[(c[j>>2]|0)+8+4>>2]+ +g[(c[j>>2]|0)+24+4>>2];g[(c[j>>2]|0)+16>>2]=+g[c[j>>2]>>2]-+g[s>>2];g[(c[j>>2]|0)+16+4>>2]=+g[(c[j>>2]|0)+4>>2]-+g[s+4>>2];h=c[j>>2]|0;g[h>>2]=+g[h>>2]+ +g[s>>2];h=(c[j>>2]|0)+4|0;g[h>>2]=+g[h>>2]+ +g[s+4>>2];g[s>>2]=+g[(c[j>>2]|0)+8>>2]-+g[(c[j>>2]|0)+24>>2];g[s+4>>2]=+g[(c[j>>2]|0)+8+4>>2]-+g[(c[j>>2]|0)+24+4>>2];g[(c[j>>2]|0)+8>>2]=+g[r>>2]+ +g[s+4>>2];g[(c[j>>2]|0)+8+4>>2]=+g[r+4>>2]-+g[s>>2];g[(c[j>>2]|0)+24>>2]=+g[r>>2]-+g[s+4>>2];g[(c[j>>2]|0)+24+4>>2]=+g[r+4>>2]+ +g[s>>2];c[j>>2]=(c[j>>2]|0)+32;c[q>>2]=(c[q>>2]|0)+1}l=i;return}c[y>>2]=c[n>>2]<<1;c[z>>2]=(c[n>>2]|0)*3;c[A>>2]=c[j>>2];c[q>>2]=0;while(1){if((c[q>>2]|0)>=(c[o>>2]|0))break;c[j>>2]=(c[A>>2]|0)+((R(c[q>>2]|0,c[p>>2]|0)|0)<<3);s=c[(c[m>>2]|0)+48>>2]|0;c[v>>2]=s;c[w>>2]=s;c[x>>2]=s;c[t>>2]=0;while(1){if((c[t>>2]|0)>=(c[n>>2]|0))break;g[u>>2]=+g[(c[j>>2]|0)+(c[n>>2]<<3)>>2]*+g[c[v>>2]>>2]-+g[(c[j>>2]|0)+(c[n>>2]<<3)+4>>2]*+g[(c[v>>2]|0)+4>>2];g[u+4>>2]=+g[(c[j>>2]|0)+(c[n>>2]<<3)>>2]*+g[(c[v>>2]|0)+4>>2]+ +g[(c[j>>2]|0)+(c[n>>2]<<3)+4>>2]*+g[c[v>>2]>>2];g[u+8>>2]=+g[(c[j>>2]|0)+(c[y>>2]<<3)>>2]*+g[c[w>>2]>>2]-+g[(c[j>>2]|0)+(c[y>>2]<<3)+4>>2]*+g[(c[w>>2]|0)+4>>2];g[u+8+4>>2]=+g[(c[j>>2]|0)+(c[y>>2]<<3)>>2]*+g[(c[w>>2]|0)+4>>2]+ +g[(c[j>>2]|0)+(c[y>>2]<<3)+4>>2]*+g[c[w>>2]>>2];g[u+16>>2]=+g[(c[j>>2]|0)+(c[z>>2]<<3)>>2]*+g[c[x>>2]>>2]-+g[(c[j>>2]|0)+(c[z>>2]<<3)+4>>2]*+g[(c[x>>2]|0)+4>>2];g[u+16+4>>2]=+g[(c[j>>2]|0)+(c[z>>2]<<3)>>2]*+g[(c[x>>2]|0)+4>>2]+ +g[(c[j>>2]|0)+(c[z>>2]<<3)+4>>2]*+g[c[x>>2]>>2];g[u+40>>2]=+g[c[j>>2]>>2]-+g[u+8>>2];g[u+40+4>>2]=+g[(c[j>>2]|0)+4>>2]-+g[u+8+4>>2];s=c[j>>2]|0;g[s>>2]=+g[s>>2]+ +g[u+8>>2];s=(c[j>>2]|0)+4|0;g[s>>2]=+g[s>>2]+ +g[u+8+4>>2];g[u+24>>2]=+g[u>>2]+ +g[u+16>>2];g[u+24+4>>2]=+g[u+4>>2]+ +g[u+16+4>>2];g[u+32>>2]=+g[u>>2]-+g[u+16>>2];g[u+32+4>>2]=+g[u+4>>2]-+g[u+16+4>>2];g[(c[j>>2]|0)+(c[y>>2]<<3)>>2]=+g[c[j>>2]>>2]-+g[u+24>>2];g[(c[j>>2]|0)+(c[y>>2]<<3)+4>>2]=+g[(c[j>>2]|0)+4>>2]-+g[u+24+4>>2];c[v>>2]=(c[v>>2]|0)+(c[k>>2]<<3);c[w>>2]=(c[w>>2]|0)+(c[k>>2]<<1<<3);c[x>>2]=(c[x>>2]|0)+((c[k>>2]|0)*3<<3);s=c[j>>2]|0;g[s>>2]=+g[s>>2]+ +g[u+24>>2];s=(c[j>>2]|0)+4|0;g[s>>2]=+g[s>>2]+ +g[u+24+4>>2];g[(c[j>>2]|0)+(c[n>>2]<<3)>>2]=+g[u+40>>2]+ +g[u+32+4>>2];g[(c[j>>2]|0)+(c[n>>2]<<3)+4>>2]=+g[u+40+4>>2]-+g[u+32>>2];g[(c[j>>2]|0)+(c[z>>2]<<3)>>2]=+g[u+40>>2]-+g[u+32+4>>2];g[(c[j>>2]|0)+(c[z>>2]<<3)+4>>2]=+g[u+40+4>>2]+ +g[u+32>>2];c[j>>2]=(c[j>>2]|0)+8;c[t>>2]=(c[t>>2]|0)+1}c[q>>2]=(c[q>>2]|0)+1}l=i;return}function Hb(a,b,d,e,f,h){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;h=h|0;var i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0;i=l;l=l+112|0;j=i+96|0;k=i+92|0;m=i+88|0;n=i+84|0;o=i+80|0;p=i+76|0;q=i+72|0;r=i+68|0;s=i+64|0;t=i+60|0;u=i+56|0;v=i+16|0;w=i+8|0;x=i;c[j>>2]=a;c[k>>2]=b;c[m>>2]=d;c[n>>2]=e;c[o>>2]=f;c[p>>2]=h;c[s>>2]=c[n>>2]<<1;c[x>>2]=c[j>>2];h=(c[(c[m>>2]|0)+48>>2]|0)+((R(c[k>>2]|0,c[n>>2]|0)|0)<<3)|0;c[w>>2]=c[h>>2];c[w+4>>2]=c[h+4>>2];c[q>>2]=0;while(1){if((c[q>>2]|0)>=(c[o>>2]|0))break;c[j>>2]=(c[x>>2]|0)+((R(c[q>>2]|0,c[p>>2]|0)|0)<<3);h=c[(c[m>>2]|0)+48>>2]|0;c[u>>2]=h;c[t>>2]=h;c[r>>2]=c[n>>2];do{g[v+8>>2]=+g[(c[j>>2]|0)+(c[n>>2]<<3)>>2]*+g[c[t>>2]>>2]-+g[(c[j>>2]|0)+(c[n>>2]<<3)+4>>2]*+g[(c[t>>2]|0)+4>>2];g[v+8+4>>2]=+g[(c[j>>2]|0)+(c[n>>2]<<3)>>2]*+g[(c[t>>2]|0)+4>>2]+ +g[(c[j>>2]|0)+(c[n>>2]<<3)+4>>2]*+g[c[t>>2]>>2];g[v+16>>2]=+g[(c[j>>2]|0)+(c[s>>2]<<3)>>2]*+g[c[u>>2]>>2]-+g[(c[j>>2]|0)+(c[s>>2]<<3)+4>>2]*+g[(c[u>>2]|0)+4>>2];g[v+16+4>>2]=+g[(c[j>>2]|0)+(c[s>>2]<<3)>>2]*+g[(c[u>>2]|0)+4>>2]+ +g[(c[j>>2]|0)+(c[s>>2]<<3)+4>>2]*+g[c[u>>2]>>2];g[v+24>>2]=+g[v+8>>2]+ +g[v+16>>2];g[v+24+4>>2]=+g[v+8+4>>2]+ +g[v+16+4>>2];g[v>>2]=+g[v+8>>2]-+g[v+16>>2];g[v+4>>2]=+g[v+8+4>>2]-+g[v+16+4>>2];c[t>>2]=(c[t>>2]|0)+(c[k>>2]<<3);c[u>>2]=(c[u>>2]|0)+(c[k>>2]<<1<<3);g[(c[j>>2]|0)+(c[n>>2]<<3)>>2]=+g[c[j>>2]>>2]-+g[v+24>>2]*.5;g[(c[j>>2]|0)+(c[n>>2]<<3)+4>>2]=+g[(c[j>>2]|0)+4>>2]-+g[v+24+4>>2]*.5;g[v>>2]=+g[v>>2]*+g[w+4>>2];h=v+4|0;g[h>>2]=+g[h>>2]*+g[w+4>>2];h=c[j>>2]|0;g[h>>2]=+g[h>>2]+ +g[v+24>>2];h=(c[j>>2]|0)+4|0;g[h>>2]=+g[h>>2]+ +g[v+24+4>>2];g[(c[j>>2]|0)+(c[s>>2]<<3)>>2]=+g[(c[j>>2]|0)+(c[n>>2]<<3)>>2]+ +g[v+4>>2];g[(c[j>>2]|0)+(c[s>>2]<<3)+4>>2]=+g[(c[j>>2]|0)+(c[n>>2]<<3)+4>>2]-+g[v>>2];h=(c[j>>2]|0)+(c[n>>2]<<3)|0;g[h>>2]=+g[h>>2]-+g[v+4>>2];h=(c[j>>2]|0)+(c[n>>2]<<3)+4|0;g[h>>2]=+g[h>>2]+ +g[v>>2];c[j>>2]=(c[j>>2]|0)+8;h=(c[r>>2]|0)+-1|0;c[r>>2]=h}while((h|0)!=0);c[q>>2]=(c[q>>2]|0)+1}l=i;return}function Ib(a,b,d,e,f,h){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;h=h|0;var i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0.0;i=l;l=l+192|0;j=i+184|0;k=i+180|0;m=i+176|0;n=i+172|0;o=i+168|0;p=i+164|0;q=i+160|0;r=i+156|0;s=i+152|0;t=i+148|0;u=i+144|0;v=i+140|0;w=i+136|0;x=i+32|0;y=i+24|0;z=i+16|0;A=i+8|0;B=i;c[j>>2]=a;c[k>>2]=b;c[m>>2]=d;c[n>>2]=e;c[o>>2]=f;c[p>>2]=h;c[B>>2]=c[j>>2];h=(c[(c[m>>2]|0)+48>>2]|0)+((R(c[k>>2]|0,c[n>>2]|0)|0)<<3)|0;c[z>>2]=c[h>>2];c[z+4>>2]=c[h+4>>2];h=(c[(c[m>>2]|0)+48>>2]|0)+((R(c[k>>2]<<1,c[n>>2]|0)|0)<<3)|0;c[A>>2]=c[h>>2];c[A+4>>2]=c[h+4>>2];c[y>>2]=c[(c[m>>2]|0)+48>>2];c[v>>2]=0;while(1){if((c[v>>2]|0)>=(c[o>>2]|0))break;c[j>>2]=(c[B>>2]|0)+((R(c[v>>2]|0,c[p>>2]|0)|0)<<3);c[q>>2]=c[j>>2];c[r>>2]=(c[q>>2]|0)+(c[n>>2]<<3);c[s>>2]=(c[q>>2]|0)+(c[n>>2]<<1<<3);c[t>>2]=(c[q>>2]|0)+((c[n>>2]|0)*3<<3);c[u>>2]=(c[q>>2]|0)+(c[n>>2]<<2<<3);c[w>>2]=0;while(1){if((c[w>>2]|0)>=(c[n>>2]|0))break;m=c[q>>2]|0;c[x>>2]=c[m>>2];c[x+4>>2]=c[m+4>>2];C=+g[c[r>>2]>>2]*+g[(c[y>>2]|0)+((R(c[w>>2]|0,c[k>>2]|0)|0)<<3)>>2];g[x+8>>2]=C-+g[(c[r>>2]|0)+4>>2]*+g[(c[y>>2]|0)+((R(c[w>>2]|0,c[k>>2]|0)|0)<<3)+4>>2];C=+g[c[r>>2]>>2]*+g[(c[y>>2]|0)+((R(c[w>>2]|0,c[k>>2]|0)|0)<<3)+4>>2];g[x+8+4>>2]=C+ +g[(c[r>>2]|0)+4>>2]*+g[(c[y>>2]|0)+((R(c[w>>2]|0,c[k>>2]|0)|0)<<3)>>2];C=+g[c[s>>2]>>2]*+g[(c[y>>2]|0)+((R(c[w>>2]<<1,c[k>>2]|0)|0)<<3)>>2];g[x+16>>2]=C-+g[(c[s>>2]|0)+4>>2]*+g[(c[y>>2]|0)+((R(c[w>>2]<<1,c[k>>2]|0)|0)<<3)+4>>2];C=+g[c[s>>2]>>2]*+g[(c[y>>2]|0)+((R(c[w>>2]<<1,c[k>>2]|0)|0)<<3)+4>>2];g[x+16+4>>2]=C+ +g[(c[s>>2]|0)+4>>2]*+g[(c[y>>2]|0)+((R(c[w>>2]<<1,c[k>>2]|0)|0)<<3)>>2];C=+g[c[t>>2]>>2]*+g[(c[y>>2]|0)+((R((c[w>>2]|0)*3|0,c[k>>2]|0)|0)<<3)>>2];g[x+24>>2]=C-+g[(c[t>>2]|0)+4>>2]*+g[(c[y>>2]|0)+((R((c[w>>2]|0)*3|0,c[k>>2]|0)|0)<<3)+4>>2];C=+g[c[t>>2]>>2]*+g[(c[y>>2]|0)+((R((c[w>>2]|0)*3|0,c[k>>2]|0)|0)<<3)+4>>2];g[x+24+4>>2]=C+ +g[(c[t>>2]|0)+4>>2]*+g[(c[y>>2]|0)+((R((c[w>>2]|0)*3|0,c[k>>2]|0)|0)<<3)>>2];C=+g[c[u>>2]>>2]*+g[(c[y>>2]|0)+((R(c[w>>2]<<2,c[k>>2]|0)|0)<<3)>>2];g[x+32>>2]=C-+g[(c[u>>2]|0)+4>>2]*+g[(c[y>>2]|0)+((R(c[w>>2]<<2,c[k>>2]|0)|0)<<3)+4>>2];C=+g[c[u>>2]>>2]*+g[(c[y>>2]|0)+((R(c[w>>2]<<2,c[k>>2]|0)|0)<<3)+4>>2];g[x+32+4>>2]=C+ +g[(c[u>>2]|0)+4>>2]*+g[(c[y>>2]|0)+((R(c[w>>2]<<2,c[k>>2]|0)|0)<<3)>>2];g[x+56>>2]=+g[x+8>>2]+ +g[x+32>>2];g[x+56+4>>2]=+g[x+8+4>>2]+ +g[x+32+4>>2];g[x+80>>2]=+g[x+8>>2]-+g[x+32>>2];g[x+80+4>>2]=+g[x+8+4>>2]-+g[x+32+4>>2];g[x+64>>2]=+g[x+16>>2]+ +g[x+24>>2];g[x+64+4>>2]=+g[x+16+4>>2]+ +g[x+24+4>>2];g[x+72>>2]=+g[x+16>>2]-+g[x+24>>2];g[x+72+4>>2]=+g[x+16+4>>2]-+g[x+24+4>>2];m=c[q>>2]|0;g[m>>2]=+g[m>>2]+(+g[x+56>>2]+ +g[x+64>>2]);m=(c[q>>2]|0)+4|0;g[m>>2]=+g[m>>2]+(+g[x+56+4>>2]+ +g[x+64+4>>2]);g[x+40>>2]=+g[x>>2]+ +g[x+56>>2]*+g[z>>2]+ +g[x+64>>2]*+g[A>>2];g[x+40+4>>2]=+g[x+4>>2]+ +g[x+56+4>>2]*+g[z>>2]+ +g[x+64+4>>2]*+g[A>>2];g[x+48>>2]=+g[x+80+4>>2]*+g[z+4>>2]+ +g[x+72+4>>2]*+g[A+4>>2];g[x+48+4>>2]=-(+g[x+80>>2]*+g[z+4>>2])-+g[x+72>>2]*+g[A+4>>2];g[c[r>>2]>>2]=+g[x+40>>2]-+g[x+48>>2];g[(c[r>>2]|0)+4>>2]=+g[x+40+4>>2]-+g[x+48+4>>2];g[c[u>>2]>>2]=+g[x+40>>2]+ +g[x+48>>2];g[(c[u>>2]|0)+4>>2]=+g[x+40+4>>2]+ +g[x+48+4>>2];g[x+88>>2]=+g[x>>2]+ +g[x+56>>2]*+g[A>>2]+ +g[x+64>>2]*+g[z>>2];g[x+88+4>>2]=+g[x+4>>2]+ +g[x+56+4>>2]*+g[A>>2]+ +g[x+64+4>>2]*+g[z>>2];g[x+96>>2]=-(+g[x+80+4>>2]*+g[A+4>>2])+ +g[x+72+4>>2]*+g[z+4>>2];g[x+96+4>>2]=+g[x+80>>2]*+g[A+4>>2]-+g[x+72>>2]*+g[z+4>>2];g[c[s>>2]>>2]=+g[x+88>>2]+ +g[x+96>>2];g[(c[s>>2]|0)+4>>2]=+g[x+88+4>>2]+ +g[x+96+4>>2];g[c[t>>2]>>2]=+g[x+88>>2]-+g[x+96>>2];g[(c[t>>2]|0)+4>>2]=+g[x+88+4>>2]-+g[x+96+4>>2];c[q>>2]=(c[q>>2]|0)+8;c[r>>2]=(c[r>>2]|0)+8;c[s>>2]=(c[s>>2]|0)+8;c[t>>2]=(c[t>>2]|0)+8;c[u>>2]=(c[u>>2]|0)+8;c[w>>2]=(c[w>>2]|0)+1}c[v>>2]=(c[v>>2]|0)+1}l=i;return}function Jb(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0;h=l;l=l+112|0;i=h+108|0;j=h+104|0;k=h+100|0;m=h+96|0;n=h+92|0;o=h+88|0;p=h+68|0;q=h+64|0;r=h+48|0;s=h+24|0;t=h+4|0;u=h;c[i>>2]=a;c[j>>2]=b;c[k>>2]=d;c[m>>2]=e;c[n>>2]=f;g[q>>2]=1.0;c[s>>2]=0;c[s+4>>2]=0;c[s+8>>2]=0;c[s+12>>2]=0;c[s+16>>2]=0;g[u>>2]=.800000011920929;c[o>>2]=1;while(1){v=c[c[i>>2]>>2]|0;if((c[o>>2]|0)>=(c[k>>2]>>1|0))break;g[(c[j>>2]|0)+(c[o>>2]<<2)>>2]=((+g[v+((c[o>>2]<<1)-1<<2)>>2]+ +g[(c[c[i>>2]>>2]|0)+((c[o>>2]<<1)+1<<2)>>2])*.5+ +g[(c[c[i>>2]>>2]|0)+(c[o>>2]<<1<<2)>>2])*.5;c[o>>2]=(c[o>>2]|0)+1}g[c[j>>2]>>2]=(+g[v+4>>2]*.5+ +g[c[c[i>>2]>>2]>>2])*.5;if((c[m>>2]|0)==2){c[o>>2]=1;while(1){w=c[(c[i>>2]|0)+4>>2]|0;if((c[o>>2]|0)>=(c[k>>2]>>1|0))break;m=(c[j>>2]|0)+(c[o>>2]<<2)|0;g[m>>2]=+g[m>>2]+((+g[w+((c[o>>2]<<1)-1<<2)>>2]+ +g[(c[(c[i>>2]|0)+4>>2]|0)+((c[o>>2]<<1)+1<<2)>>2])*.5+ +g[(c[(c[i>>2]|0)+4>>2]|0)+(c[o>>2]<<1<<2)>>2])*.5;c[o>>2]=(c[o>>2]|0)+1}m=c[j>>2]|0;g[m>>2]=+g[m>>2]+(+g[w+4>>2]*.5+ +g[c[(c[i>>2]|0)+4>>2]>>2])*.5}Pb(c[j>>2]|0,p,0,0,4,c[k>>2]>>1,c[n>>2]|0)|0;g[p>>2]=+g[p>>2]*1.000100016593933;c[o>>2]=1;while(1){if((c[o>>2]|0)>4)break;n=p+(c[o>>2]<<2)|0;g[n>>2]=+g[n>>2]-+g[p+(c[o>>2]<<2)>>2]*(+(c[o>>2]|0)*.00800000037997961)*(+(c[o>>2]|0)*.00800000037997961);c[o>>2]=(c[o>>2]|0)+1}Qb(r,p,4);c[o>>2]=0;while(1){if((c[o>>2]|0)>=4)break;g[q>>2]=+g[q>>2]*.8999999761581421;g[r+(c[o>>2]<<2)>>2]=+g[r+(c[o>>2]<<2)>>2]*+g[q>>2];c[o>>2]=(c[o>>2]|0)+1}g[t>>2]=+g[r>>2]+.800000011920929;g[t+4>>2]=+g[r+4>>2]+ +g[u>>2]*+g[r>>2];g[t+8>>2]=+g[r+8>>2]+ +g[u>>2]*+g[r+4>>2];g[t+12>>2]=+g[r+12>>2]+ +g[u>>2]*+g[r+8>>2];g[t+16>>2]=+g[u>>2]*+g[r+12>>2];Rb(c[j>>2]|0,t,c[j>>2]|0,c[k>>2]>>1,s);l=h;return}function Kb(a,b,d,e,f,h){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;h=h|0;var i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,F=0;i=l;l=l+80|0;j=i+64|0;k=i+60|0;m=i+56|0;n=i+52|0;o=i+48|0;p=i+40|0;q=i+36|0;r=i+32|0;s=i+24|0;t=i+20|0;u=i+16|0;v=i+12|0;w=i+8|0;x=i+4|0;y=i;c[j>>2]=a;c[k>>2]=b;c[m>>2]=d;c[n>>2]=e;c[o>>2]=f;c[i+44>>2]=h;c[s>>2]=0;c[s+4>>2]=0;c[r>>2]=(c[m>>2]|0)+(c[n>>2]|0);h=c[m>>2]>>2;c[u>>2]=da()|0;f=l;l=l+((1*(h<<2)|0)+15&-16)|0;h=l;l=l+((1*(c[r>>2]>>2<<2)|0)+15&-16)|0;e=l;l=l+((1*(c[n>>2]>>1<<2)|0)+15&-16)|0;c[q>>2]=0;while(1){if((c[q>>2]|0)>=(c[m>>2]>>2|0))break;g[f+(c[q>>2]<<2)>>2]=+g[(c[j>>2]|0)+(c[q>>2]<<1<<2)>>2];c[q>>2]=(c[q>>2]|0)+1}c[q>>2]=0;while(1){if((c[q>>2]|0)>=(c[r>>2]>>2|0))break;g[h+(c[q>>2]<<2)>>2]=+g[(c[k>>2]|0)+(c[q>>2]<<1<<2)>>2];c[q>>2]=(c[q>>2]|0)+1}Mb(f,h,e,c[m>>2]>>2,c[n>>2]>>2);Nb(e,h,c[m>>2]>>2,c[n>>2]>>2,s);c[p>>2]=0;while(1){if((c[p>>2]|0)>=(c[n>>2]>>1|0))break;g[e+(c[p>>2]<<2)>>2]=0.0;if(!((E((c[p>>2]|0)-(c[s>>2]<<1)|0)|0)>2?(E((c[p>>2]|0)-(c[s+4>>2]<<1)|0)|0)>2:0)){g[v>>2]=+Lb(c[j>>2]|0,(c[k>>2]|0)+(c[p>>2]<<2)|0,c[m>>2]>>1);g[e+(c[p>>2]<<2)>>2]=-1.0>+g[v>>2]?-1.0:+g[v>>2]}c[p>>2]=(c[p>>2]|0)+1}Nb(e,c[k>>2]|0,c[m>>2]>>1,c[n>>2]>>1,s);if((c[s>>2]|0)>0?(c[s>>2]|0)<((c[n>>2]>>1)-1|0):0){g[w>>2]=+g[e+((c[s>>2]|0)-1<<2)>>2];g[x>>2]=+g[e+(c[s>>2]<<2)>>2];g[y>>2]=+g[e+((c[s>>2]|0)+1<<2)>>2];if(+g[y>>2]-+g[w>>2]>(+g[x>>2]-+g[w>>2])*.699999988079071){c[t>>2]=1;z=c[s>>2]|0;A=z<<1;B=c[t>>2]|0;C=A-B|0;D=c[o>>2]|0;c[D>>2]=C;F=c[u>>2]|0;ga(F|0);l=i;return}if(+g[w>>2]-+g[y>>2]>(+g[x>>2]-+g[y>>2])*.699999988079071){c[t>>2]=-1;z=c[s>>2]|0;A=z<<1;B=c[t>>2]|0;C=A-B|0;D=c[o>>2]|0;c[D>>2]=C;F=c[u>>2]|0;ga(F|0);l=i;return}else{c[t>>2]=0;z=c[s>>2]|0;A=z<<1;B=c[t>>2]|0;C=A-B|0;D=c[o>>2]|0;c[D>>2]=C;F=c[u>>2]|0;ga(F|0);l=i;return}}c[t>>2]=0;z=c[s>>2]|0;A=z<<1;B=c[t>>2]|0;C=A-B|0;D=c[o>>2]|0;c[D>>2]=C;F=c[u>>2]|0;ga(F|0);l=i;return}function Lb(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,h=0,i=0,j=0,k=0,m=0.0;e=l;l=l+32|0;f=e+16|0;h=e+12|0;i=e+8|0;j=e+4|0;k=e;c[f>>2]=a;c[h>>2]=b;c[i>>2]=d;g[k>>2]=0.0;c[j>>2]=0;while(1){m=+g[k>>2];if((c[j>>2]|0)>=(c[i>>2]|0))break;g[k>>2]=m+ +g[(c[f>>2]|0)+(c[j>>2]<<2)>>2]*+g[(c[h>>2]|0)+(c[j>>2]<<2)>>2];c[j>>2]=(c[j>>2]|0)+1}l=e;return +m}function Mb(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0;h=l;l=l+48|0;i=h+44|0;j=h+40|0;k=h+36|0;m=h+32|0;n=h+28|0;o=h+24|0;p=h+8|0;q=h;c[i>>2]=a;c[j>>2]=b;c[k>>2]=d;c[m>>2]=e;c[n>>2]=f;c[o>>2]=0;while(1){if((c[o>>2]|0)>=((c[n>>2]|0)-3|0))break;c[p>>2]=0;c[p+4>>2]=0;c[p+8>>2]=0;c[p+12>>2]=0;Ob(c[i>>2]|0,(c[j>>2]|0)+(c[o>>2]<<2)|0,p,c[m>>2]|0);g[(c[k>>2]|0)+(c[o>>2]<<2)>>2]=+g[p>>2];g[(c[k>>2]|0)+((c[o>>2]|0)+1<<2)>>2]=+g[p+4>>2];g[(c[k>>2]|0)+((c[o>>2]|0)+2<<2)>>2]=+g[p+8>>2];g[(c[k>>2]|0)+((c[o>>2]|0)+3<<2)>>2]=+g[p+12>>2];c[o>>2]=(c[o>>2]|0)+4}while(1){if((c[o>>2]|0)>=(c[n>>2]|0))break;g[q>>2]=+Lb(c[i>>2]|0,(c[j>>2]|0)+(c[o>>2]<<2)|0,c[m>>2]|0);g[(c[k>>2]|0)+(c[o>>2]<<2)>>2]=+g[q>>2];c[o>>2]=(c[o>>2]|0)+1}l=h;return}function Nb(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0;h=l;l=l+64|0;i=h+52|0;j=h+48|0;k=h+44|0;m=h+40|0;n=h+36|0;o=h+32|0;p=h+28|0;q=h+24|0;r=h+16|0;s=h+8|0;t=h+4|0;u=h;c[i>>2]=a;c[j>>2]=b;c[k>>2]=d;c[m>>2]=e;c[n>>2]=f;g[q>>2]=1.0;g[r>>2]=-1.0;g[r+4>>2]=-1.0;g[s>>2]=0.0;g[s+4>>2]=0.0;c[c[n>>2]>>2]=0;c[(c[n>>2]|0)+4>>2]=1;c[p>>2]=0;while(1){if((c[p>>2]|0)>=(c[k>>2]|0))break;g[q>>2]=+g[q>>2]+ +g[(c[j>>2]|0)+(c[p>>2]<<2)>>2]*+g[(c[j>>2]|0)+(c[p>>2]<<2)>>2];c[p>>2]=(c[p>>2]|0)+1}c[o>>2]=0;while(1){if((c[o>>2]|0)>=(c[m>>2]|0))break;if(+g[(c[i>>2]|0)+(c[o>>2]<<2)>>2]>0.0?(g[u>>2]=+g[(c[i>>2]|0)+(c[o>>2]<<2)>>2],g[u>>2]=+g[u>>2]*9.999999960041972e-13,g[t>>2]=+g[u>>2]*+g[u>>2],+g[t>>2]*+g[s+4>>2]>+g[r+4>>2]*+g[q>>2]):0){if(+g[t>>2]*+g[s>>2]>+g[r>>2]*+g[q>>2]){g[r+4>>2]=+g[r>>2];g[s+4>>2]=+g[s>>2];c[(c[n>>2]|0)+4>>2]=c[c[n>>2]>>2];g[r>>2]=+g[t>>2];g[s>>2]=+g[q>>2];v=c[o>>2]|0;w=c[n>>2]|0}else{g[r+4>>2]=+g[t>>2];g[s+4>>2]=+g[q>>2];v=c[o>>2]|0;w=(c[n>>2]|0)+4|0}c[w>>2]=v}g[q>>2]=+g[q>>2]+(+g[(c[j>>2]|0)+((c[o>>2]|0)+(c[k>>2]|0)<<2)>>2]*+g[(c[j>>2]|0)+((c[o>>2]|0)+(c[k>>2]|0)<<2)>>2]-+g[(c[j>>2]|0)+(c[o>>2]<<2)>>2]*+g[(c[j>>2]|0)+(c[o>>2]<<2)>>2]);g[q>>2]=1.0>+g[q>>2]?1.0:+g[q>>2];c[o>>2]=(c[o>>2]|0)+1}l=h;return}function Ob(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0;f=l;l=l+64|0;h=f+48|0;i=f+44|0;j=f+40|0;k=f+36|0;m=f+32|0;n=f+28|0;o=f+24|0;p=f+20|0;q=f+16|0;r=f+12|0;s=f+8|0;t=f+4|0;u=f;c[h>>2]=a;c[i>>2]=b;c[j>>2]=d;c[k>>2]=e;g[q>>2]=0.0;e=c[i>>2]|0;c[i>>2]=e+4;g[n>>2]=+g[e>>2];e=c[i>>2]|0;c[i>>2]=e+4;g[o>>2]=+g[e>>2];e=c[i>>2]|0;c[i>>2]=e+4;g[p>>2]=+g[e>>2];c[m>>2]=0;while(1){if((c[m>>2]|0)>=((c[k>>2]|0)-3|0))break;e=c[h>>2]|0;c[h>>2]=e+4;g[r>>2]=+g[e>>2];e=c[i>>2]|0;c[i>>2]=e+4;g[q>>2]=+g[e>>2];g[c[j>>2]>>2]=+g[c[j>>2]>>2]+ +g[r>>2]*+g[n>>2];g[(c[j>>2]|0)+4>>2]=+g[(c[j>>2]|0)+4>>2]+ +g[r>>2]*+g[o>>2];g[(c[j>>2]|0)+8>>2]=+g[(c[j>>2]|0)+8>>2]+ +g[r>>2]*+g[p>>2];g[(c[j>>2]|0)+12>>2]=+g[(c[j>>2]|0)+12>>2]+ +g[r>>2]*+g[q>>2];e=c[h>>2]|0;c[h>>2]=e+4;g[r>>2]=+g[e>>2];e=c[i>>2]|0;c[i>>2]=e+4;g[n>>2]=+g[e>>2];g[c[j>>2]>>2]=+g[c[j>>2]>>2]+ +g[r>>2]*+g[o>>2];g[(c[j>>2]|0)+4>>2]=+g[(c[j>>2]|0)+4>>2]+ +g[r>>2]*+g[p>>2];g[(c[j>>2]|0)+8>>2]=+g[(c[j>>2]|0)+8>>2]+ +g[r>>2]*+g[q>>2];g[(c[j>>2]|0)+12>>2]=+g[(c[j>>2]|0)+12>>2]+ +g[r>>2]*+g[n>>2];e=c[h>>2]|0;c[h>>2]=e+4;g[r>>2]=+g[e>>2];e=c[i>>2]|0;c[i>>2]=e+4;g[o>>2]=+g[e>>2];g[c[j>>2]>>2]=+g[c[j>>2]>>2]+ +g[r>>2]*+g[p>>2];g[(c[j>>2]|0)+4>>2]=+g[(c[j>>2]|0)+4>>2]+ +g[r>>2]*+g[q>>2];g[(c[j>>2]|0)+8>>2]=+g[(c[j>>2]|0)+8>>2]+ +g[r>>2]*+g[n>>2];g[(c[j>>2]|0)+12>>2]=+g[(c[j>>2]|0)+12>>2]+ +g[r>>2]*+g[o>>2];e=c[h>>2]|0;c[h>>2]=e+4;g[r>>2]=+g[e>>2];e=c[i>>2]|0;c[i>>2]=e+4;g[p>>2]=+g[e>>2];g[c[j>>2]>>2]=+g[c[j>>2]>>2]+ +g[r>>2]*+g[q>>2];g[(c[j>>2]|0)+4>>2]=+g[(c[j>>2]|0)+4>>2]+ +g[r>>2]*+g[n>>2];g[(c[j>>2]|0)+8>>2]=+g[(c[j>>2]|0)+8>>2]+ +g[r>>2]*+g[o>>2];g[(c[j>>2]|0)+12>>2]=+g[(c[j>>2]|0)+12>>2]+ +g[r>>2]*+g[p>>2];c[m>>2]=(c[m>>2]|0)+4}r=c[m>>2]|0;c[m>>2]=r+1;if((r|0)<(c[k>>2]|0)){r=c[h>>2]|0;c[h>>2]=r+4;g[s>>2]=+g[r>>2];r=c[i>>2]|0;c[i>>2]=r+4;g[q>>2]=+g[r>>2];g[c[j>>2]>>2]=+g[c[j>>2]>>2]+ +g[s>>2]*+g[n>>2];g[(c[j>>2]|0)+4>>2]=+g[(c[j>>2]|0)+4>>2]+ +g[s>>2]*+g[o>>2];g[(c[j>>2]|0)+8>>2]=+g[(c[j>>2]|0)+8>>2]+ +g[s>>2]*+g[p>>2];g[(c[j>>2]|0)+12>>2]=+g[(c[j>>2]|0)+12>>2]+ +g[s>>2]*+g[q>>2]}s=c[m>>2]|0;c[m>>2]=s+1;if((s|0)<(c[k>>2]|0)){s=c[h>>2]|0;c[h>>2]=s+4;g[t>>2]=+g[s>>2];s=c[i>>2]|0;c[i>>2]=s+4;g[n>>2]=+g[s>>2];g[c[j>>2]>>2]=+g[c[j>>2]>>2]+ +g[t>>2]*+g[o>>2];g[(c[j>>2]|0)+4>>2]=+g[(c[j>>2]|0)+4>>2]+ +g[t>>2]*+g[p>>2];g[(c[j>>2]|0)+8>>2]=+g[(c[j>>2]|0)+8>>2]+ +g[t>>2]*+g[q>>2];g[(c[j>>2]|0)+12>>2]=+g[(c[j>>2]|0)+12>>2]+ +g[t>>2]*+g[n>>2]}if((c[m>>2]|0)>=(c[k>>2]|0)){l=f;return}k=c[h>>2]|0;c[h>>2]=k+4;g[u>>2]=+g[k>>2];k=c[i>>2]|0;c[i>>2]=k+4;g[o>>2]=+g[k>>2];g[c[j>>2]>>2]=+g[c[j>>2]>>2]+ +g[u>>2]*+g[p>>2];g[(c[j>>2]|0)+4>>2]=+g[(c[j>>2]|0)+4>>2]+ +g[u>>2]*+g[q>>2];g[(c[j>>2]|0)+8>>2]=+g[(c[j>>2]|0)+8>>2]+ +g[u>>2]*+g[n>>2];g[(c[j>>2]|0)+12>>2]=+g[(c[j>>2]|0)+12>>2]+ +g[u>>2]*+g[o>>2];l=f;return}function Pb(a,b,d,e,f,h,i){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;h=h|0;i=i|0;var j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0.0;j=l;l=l+64|0;k=j+52|0;m=j+48|0;n=j+44|0;o=j+40|0;p=j+36|0;q=j+32|0;r=j+24|0;s=j+20|0;t=j+16|0;u=j+12|0;v=j+8|0;w=j+4|0;x=j;c[k>>2]=a;c[m>>2]=b;c[n>>2]=d;c[o>>2]=e;c[p>>2]=f;c[q>>2]=h;c[j+28>>2]=i;c[u>>2]=(c[q>>2]|0)-(c[p>>2]|0);i=c[q>>2]|0;c[x>>2]=da()|0;h=l;l=l+((1*(i<<2)|0)+15&-16)|0;if(!(c[o>>2]|0))c[w>>2]=c[k>>2];else{c[s>>2]=0;while(1){if((c[s>>2]|0)>=(c[q>>2]|0))break;g[h+(c[s>>2]<<2)>>2]=+g[(c[k>>2]|0)+(c[s>>2]<<2)>>2];c[s>>2]=(c[s>>2]|0)+1}c[s>>2]=0;while(1){if((c[s>>2]|0)>=(c[o>>2]|0))break;g[h+(c[s>>2]<<2)>>2]=+g[(c[k>>2]|0)+(c[s>>2]<<2)>>2]*+g[(c[n>>2]|0)+(c[s>>2]<<2)>>2];g[h+((c[q>>2]|0)-(c[s>>2]|0)-1<<2)>>2]=+g[(c[k>>2]|0)+((c[q>>2]|0)-(c[s>>2]|0)-1<<2)>>2]*+g[(c[n>>2]|0)+(c[s>>2]<<2)>>2];c[s>>2]=(c[s>>2]|0)+1}c[w>>2]=h}c[v>>2]=0;Mb(c[w>>2]|0,c[w>>2]|0,c[m>>2]|0,c[u>>2]|0,(c[p>>2]|0)+1|0);c[t>>2]=0;while(1){if((c[t>>2]|0)>(c[p>>2]|0))break;c[s>>2]=(c[t>>2]|0)+(c[u>>2]|0);g[r>>2]=0.0;while(1){y=+g[r>>2];if((c[s>>2]|0)>=(c[q>>2]|0))break;g[r>>2]=y+ +g[(c[w>>2]|0)+(c[s>>2]<<2)>>2]*+g[(c[w>>2]|0)+((c[s>>2]|0)-(c[t>>2]|0)<<2)>>2];c[s>>2]=(c[s>>2]|0)+1}h=(c[m>>2]|0)+(c[t>>2]<<2)|0;g[h>>2]=+g[h>>2]+y;c[t>>2]=(c[t>>2]|0)+1}t=c[v>>2]|0;ga(c[x>>2]|0);l=j;return t|0}function Qb(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;e=l;l=l+48|0;f=e+40|0;h=e+36|0;i=e+32|0;j=e+28|0;k=e+24|0;m=e+20|0;n=e+16|0;o=e+12|0;p=e+8|0;q=e+4|0;r=e;c[f>>2]=a;c[h>>2]=b;c[i>>2]=d;g[n>>2]=+g[c[h>>2]>>2];c[o>>2]=c[f>>2];c[j>>2]=0;while(1){if((c[j>>2]|0)>=(c[i>>2]|0))break;g[(c[o>>2]|0)+(c[j>>2]<<2)>>2]=0.0;c[j>>2]=(c[j>>2]|0)+1}if(!(+g[c[h>>2]>>2]!=0.0)){l=e;return}c[j>>2]=0;while(1){if((c[j>>2]|0)>=(c[i>>2]|0)){s=15;break}g[p>>2]=0.0;c[k>>2]=0;while(1){if((c[k>>2]|0)>=(c[j>>2]|0))break;g[p>>2]=+g[p>>2]+ +g[(c[o>>2]|0)+(c[k>>2]<<2)>>2]*+g[(c[h>>2]|0)+((c[j>>2]|0)-(c[k>>2]|0)<<2)>>2];c[k>>2]=(c[k>>2]|0)+1}g[p>>2]=+g[p>>2]+ +g[(c[h>>2]|0)+((c[j>>2]|0)+1<<2)>>2];g[m>>2]=-(+g[p>>2]/+g[n>>2]);g[(c[o>>2]|0)+(c[j>>2]<<2)>>2]=+g[m>>2];c[k>>2]=0;while(1){if((c[k>>2]|0)>=((c[j>>2]|0)+1>>1|0))break;g[q>>2]=+g[(c[o>>2]|0)+(c[k>>2]<<2)>>2];g[r>>2]=+g[(c[o>>2]|0)+((c[j>>2]|0)-1-(c[k>>2]|0)<<2)>>2];g[(c[o>>2]|0)+(c[k>>2]<<2)>>2]=+g[q>>2]+ +g[m>>2]*+g[r>>2];g[(c[o>>2]|0)+((c[j>>2]|0)-1-(c[k>>2]|0)<<2)>>2]=+g[r>>2]+ +g[m>>2]*+g[q>>2];c[k>>2]=(c[k>>2]|0)+1}g[n>>2]=+g[n>>2]-+g[m>>2]*+g[m>>2]*+g[n>>2];if(+g[n>>2]<+g[c[h>>2]>>2]*1.0000000474974513e-03){s=15;break}c[j>>2]=(c[j>>2]|0)+1}if((s|0)==15){l=e;return}}function Rb(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0;h=l;l=l+80|0;i=h+64|0;j=h+60|0;k=h+56|0;m=h+52|0;n=h+48|0;o=h+44|0;p=h+40|0;q=h+36|0;r=h+32|0;s=h+28|0;t=h+24|0;u=h+20|0;v=h+16|0;w=h+12|0;x=h+8|0;y=h+4|0;z=h;c[i>>2]=a;c[j>>2]=b;c[k>>2]=d;c[m>>2]=e;c[n>>2]=f;g[p>>2]=+g[c[j>>2]>>2];g[q>>2]=+g[(c[j>>2]|0)+4>>2];g[r>>2]=+g[(c[j>>2]|0)+8>>2];g[s>>2]=+g[(c[j>>2]|0)+12>>2];g[t>>2]=+g[(c[j>>2]|0)+16>>2];g[u>>2]=+g[c[n>>2]>>2];g[v>>2]=+g[(c[n>>2]|0)+4>>2];g[w>>2]=+g[(c[n>>2]|0)+8>>2];g[x>>2]=+g[(c[n>>2]|0)+12>>2];g[y>>2]=+g[(c[n>>2]|0)+16>>2];c[o>>2]=0;while(1){if((c[o>>2]|0)>=(c[m>>2]|0))break;g[z>>2]=+g[(c[i>>2]|0)+(c[o>>2]<<2)>>2];g[z>>2]=+g[z>>2]+ +g[p>>2]*+g[u>>2];g[z>>2]=+g[z>>2]+ +g[q>>2]*+g[v>>2];g[z>>2]=+g[z>>2]+ +g[r>>2]*+g[w>>2];g[z>>2]=+g[z>>2]+ +g[s>>2]*+g[x>>2];g[z>>2]=+g[z>>2]+ +g[t>>2]*+g[y>>2];g[y>>2]=+g[x>>2];g[x>>2]=+g[w>>2];g[w>>2]=+g[v>>2];g[v>>2]=+g[u>>2];g[u>>2]=+g[(c[i>>2]|0)+(c[o>>2]<<2)>>2];g[(c[k>>2]|0)+(c[o>>2]<<2)>>2]=+g[z>>2];c[o>>2]=(c[o>>2]|0)+1}g[c[n>>2]>>2]=+g[u>>2];g[(c[n>>2]|0)+4>>2]=+g[v>>2];g[(c[n>>2]|0)+8>>2]=+g[w>>2];g[(c[n>>2]|0)+12>>2]=+g[x>>2];g[(c[n>>2]|0)+16>>2]=+g[y>>2];l=h;return}function Sb(a){a=a|0;var b=0,d=0,e=0;b=l;l=l+16|0;d=b+4|0;e=b;c[d>>2]=a;c[e>>2]=yb(48e3,960,0)|0;a=Tb(c[e>>2]|0,c[d>>2]|0)|0;l=b;return a|0}function Tb(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;d=l;l=l+16|0;e=d+8|0;f=d+4|0;g=d;c[e>>2]=a;c[f>>2]=b;b=88+((R(c[f>>2]|0,2048+(c[(c[e>>2]|0)+4>>2]|0)|0)|0)-1<<2)|0;c[g>>2]=b+((c[f>>2]|0)*24<<2)+(c[(c[e>>2]|0)+8>>2]<<3<<2);l=d;return c[g>>2]|0}function Ub(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0;e=l;l=l+32|0;f=e+16|0;g=e+12|0;h=e+8|0;i=e+4|0;j=e;c[g>>2]=a;c[h>>2]=b;c[i>>2]=d;d=c[g>>2]|0;b=yb(48e3,960,0)|0;c[j>>2]=Vb(d,b,c[i>>2]|0)|0;if(c[j>>2]|0){c[f>>2]=c[j>>2];k=c[f>>2]|0;l=e;return k|0}j=ub(c[h>>2]|0)|0;c[(c[g>>2]|0)+16>>2]=j;if(!(c[(c[g>>2]|0)+16>>2]|0)){c[f>>2]=-1;k=c[f>>2]|0;l=e;return k|0}else{c[f>>2]=0;k=c[f>>2]|0;l=e;return k|0}return 0}function Vb(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0;e=l;l=l+32|0;f=e+16|0;g=e+12|0;h=e+8|0;i=e+4|0;c[g>>2]=a;c[h>>2]=b;c[i>>2]=d;if((c[i>>2]|0)<0|(c[i>>2]|0)>2){c[f>>2]=-1;j=c[f>>2]|0;l=e;return j|0}if(!(c[g>>2]|0)){c[f>>2]=-7;j=c[f>>2]|0;l=e;return j|0}else{d=c[g>>2]|0;He(d|0,0,Tb(c[h>>2]|0,c[i>>2]|0)|0)|0;c[c[g>>2]>>2]=c[h>>2];c[(c[g>>2]|0)+4>>2]=c[(c[h>>2]|0)+4>>2];h=c[i>>2]|0;c[(c[g>>2]|0)+8>>2]=h;c[(c[g>>2]|0)+12>>2]=h;c[(c[g>>2]|0)+16>>2]=1;c[(c[g>>2]|0)+20>>2]=0;c[(c[g>>2]|0)+24>>2]=c[(c[c[g>>2]>>2]|0)+12>>2];c[(c[g>>2]|0)+28>>2]=1;h=Wb()|0;c[(c[g>>2]|0)+32>>2]=h;c[(c[g>>2]|0)+48>>2]=0;Xb(c[g>>2]|0,4028,e)|0;c[f>>2]=0;j=c[f>>2]|0;l=e;return j|0}return 0}function Wb(){return 0}function Xb(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0;e=l;l=l+128|0;f=e+120|0;h=e+116|0;i=e+112|0;j=e+96|0;k=e+88|0;m=e+84|0;n=e+80|0;o=e+76|0;p=e+72|0;q=e+68|0;r=e+64|0;s=e+60|0;t=e+56|0;u=e+52|0;v=e+48|0;w=e+44|0;x=e+40|0;y=e+36|0;z=e+32|0;A=e+28|0;B=e+24|0;C=e+20|0;D=e+16|0;E=e+12|0;F=e+8|0;G=e+4|0;H=e;c[h>>2]=a;c[i>>2]=b;c[j>>2]=d;a:do switch(c[i>>2]|0){case 10010:{d=(c[j>>2]|0)+(4-1)&~(4-1);b=c[d>>2]|0;c[j>>2]=d+4;c[m>>2]=b;c[k>>2]=c[m>>2];if((c[k>>2]|0)>=0?(c[k>>2]|0)<(c[(c[c[h>>2]>>2]|0)+8>>2]|0):0){c[(c[h>>2]|0)+20>>2]=c[k>>2];I=24}else I=25;break}case 10012:{b=(c[j>>2]|0)+(4-1)&~(4-1);d=c[b>>2]|0;c[j>>2]=b+4;c[o>>2]=d;c[n>>2]=c[o>>2];if((c[n>>2]|0)>=1?(c[n>>2]|0)<=(c[(c[c[h>>2]>>2]|0)+8>>2]|0):0){c[(c[h>>2]|0)+24>>2]=c[n>>2];I=24}else I=25;break}case 10008:{d=(c[j>>2]|0)+(4-1)&~(4-1);b=c[d>>2]|0;c[j>>2]=d+4;c[q>>2]=b;c[p>>2]=c[q>>2];if((c[p>>2]|0)<1|(c[p>>2]|0)>2)I=25;else{c[(c[h>>2]|0)+12>>2]=c[p>>2];I=24}break}case 10007:{b=(c[j>>2]|0)+(4-1)&~(4-1);d=c[b>>2]|0;c[j>>2]=b+4;c[s>>2]=d;c[r>>2]=c[s>>2];if(!(c[r>>2]|0))I=25;else{c[c[r>>2]>>2]=c[(c[h>>2]|0)+40>>2];c[(c[h>>2]|0)+40>>2]=0;I=24}break}case 4027:{d=(c[j>>2]|0)+(4-1)&~(4-1);b=c[d>>2]|0;c[j>>2]=d+4;c[u>>2]=b;c[t>>2]=c[u>>2];if(!(c[t>>2]|0))I=25;else{c[c[t>>2]>>2]=(c[(c[h>>2]|0)+4>>2]|0)/(c[(c[h>>2]|0)+16>>2]|0)|0;I=24}break}case 4028:{c[w>>2]=(c[h>>2]|0)+84+((R(2048+(c[(c[h>>2]|0)+4>>2]|0)|0,c[(c[h>>2]|0)+8>>2]|0)|0)<<2);c[x>>2]=(c[w>>2]|0)+((c[(c[h>>2]|0)+8>>2]|0)*24<<2);c[y>>2]=(c[x>>2]|0)+(c[(c[c[h>>2]>>2]|0)+8>>2]<<1<<2);c[z>>2]=(c[y>>2]|0)+(c[(c[c[h>>2]>>2]|0)+8>>2]<<1<<2);He((c[h>>2]|0)+36|0,0,(Tb(c[c[h>>2]>>2]|0,c[(c[h>>2]|0)+8>>2]|0)|0)-((c[h>>2]|0)+36-(c[h>>2]|0))|0)|0;c[v>>2]=0;while(1){if((c[v>>2]|0)>=(c[(c[c[h>>2]>>2]|0)+8>>2]<<1|0)){I=24;break a}g[(c[z>>2]|0)+(c[v>>2]<<2)>>2]=-28.0;g[(c[y>>2]|0)+(c[v>>2]<<2)>>2]=-28.0;c[v>>2]=(c[v>>2]|0)+1}break}case 4033:{b=(c[j>>2]|0)+(4-1)&~(4-1);d=c[b>>2]|0;c[j>>2]=b+4;c[B>>2]=d;c[A>>2]=c[B>>2];if(!(c[A>>2]|0))I=25;else{c[c[A>>2]>>2]=c[(c[h>>2]|0)+52>>2];I=24}break}case 10015:{d=(c[j>>2]|0)+(4-1)&~(4-1);b=c[d>>2]|0;c[j>>2]=d+4;c[D>>2]=b;c[C>>2]=c[D>>2];if(!(c[C>>2]|0))I=25;else{c[c[C>>2]>>2]=c[c[h>>2]>>2];I=24}break}case 10016:{b=(c[j>>2]|0)+(4-1)&~(4-1);d=c[b>>2]|0;c[j>>2]=b+4;c[F>>2]=d;c[E>>2]=c[F>>2];c[(c[h>>2]|0)+28>>2]=c[E>>2];I=24;break}case 4031:{d=(c[j>>2]|0)+(4-1)&~(4-1);b=c[d>>2]|0;c[j>>2]=d+4;c[H>>2]=b;c[G>>2]=c[H>>2];if(!(c[G>>2]|0))I=25;else{c[c[G>>2]>>2]=c[(c[h>>2]|0)+36>>2];I=24}break}default:{c[f>>2]=-5;J=c[f>>2]|0;l=e;return J|0}}while(0);if((I|0)==24){c[f>>2]=0;J=c[f>>2]|0;l=e;return J|0}else if((I|0)==25){c[f>>2]=-1;J=c[f>>2]|0;l=e;return J|0}return 0}
function Yb(a,d,e,f,h,i,j){a=a|0;d=d|0;e=e|0;f=f|0;h=h|0;i=i|0;j=j|0;var k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,$=0,aa=0,ba=0,ca=0,ea=0,fa=0,ha=0,ia=0,ja=0,ka=0,la=0,ma=0,na=0,oa=0,pa=0,qa=0,ra=0,ta=0,ua=0,va=0,wa=0,za=0,Aa=0,Ba=0,Ca=0,Da=0,Ea=0,Ga=0.0;k=l;l=l+288|0;m=k+280|0;n=k+276|0;o=k+272|0;p=k+268|0;q=k+264|0;r=k+260|0;s=k+256|0;t=k+252|0;u=k+248|0;v=k+244|0;w=k+240|0;x=k+236|0;y=k+232|0;z=k+184|0;A=k+176|0;B=k+168|0;C=k+164|0;D=k+160|0;E=k+156|0;F=k+152|0;G=k+148|0;H=k+144|0;I=k+140|0;J=k+136|0;K=k+132|0;L=k+128|0;M=k+124|0;N=k+120|0;O=k+116|0;P=k+112|0;Q=k+108|0;S=k+104|0;T=k+100|0;U=k+96|0;V=k+92|0;W=k+88|0;X=k+84|0;Y=k+80|0;Z=k+76|0;_=k+72|0;$=k+68|0;aa=k+64|0;ba=k+60|0;ca=k+56|0;ea=k+52|0;fa=k+48|0;ha=k+44|0;ia=k+40|0;ja=k+36|0;ka=k+32|0;la=k+28|0;ma=k+24|0;na=k+20|0;oa=k+16|0;pa=k+12|0;qa=k+8|0;ra=k+4|0;ta=k;c[n>>2]=a;c[o>>2]=d;c[p>>2]=e;c[q>>2]=f;c[r>>2]=h;c[s>>2]=i;c[t>>2]=j;c[K>>2]=c[(c[n>>2]|0)+8>>2];c[V>>2]=0;c[W>>2]=0;c[ba>>2]=0;c[ea>>2]=c[(c[n>>2]|0)+12>>2];c[fa>>2]=c[c[n>>2]>>2];c[ha>>2]=c[(c[fa>>2]|0)+8>>2];c[ia>>2]=c[(c[fa>>2]|0)+4>>2];c[ja>>2]=c[(c[fa>>2]|0)+32>>2];c[N>>2]=c[(c[n>>2]|0)+20>>2];c[O>>2]=c[(c[n>>2]|0)+24>>2];c[r>>2]=R(c[r>>2]|0,c[(c[n>>2]|0)+16>>2]|0)|0;c[C>>2]=(c[n>>2]|0)+84+((R(2048+(c[ia>>2]|0)|0,c[K>>2]|0)|0)<<2);c[D>>2]=(c[C>>2]|0)+((c[K>>2]|0)*24<<2);c[E>>2]=(c[D>>2]|0)+(c[ha>>2]<<1<<2);c[F>>2]=(c[E>>2]|0)+(c[ha>>2]<<1<<2);c[G>>2]=(c[F>>2]|0)+(c[ha>>2]<<1<<2);c[L>>2]=0;while(1){if((c[L>>2]|0)>(c[(c[fa>>2]|0)+36>>2]|0))break;if((c[(c[fa>>2]|0)+44>>2]<<c[L>>2]|0)==(c[r>>2]|0))break;c[L>>2]=(c[L>>2]|0)+1}if((c[L>>2]|0)>(c[(c[fa>>2]|0)+36>>2]|0)){c[m>>2]=-1;ua=c[m>>2]|0;l=k;return ua|0}c[M>>2]=1<<c[L>>2];if((c[p>>2]|0)<0|(c[p>>2]|0)>1275|(c[q>>2]|0)==0){c[m>>2]=-1;ua=c[m>>2]|0;l=k;return ua|0}c[w>>2]=R(c[M>>2]|0,c[(c[fa>>2]|0)+44>>2]|0)|0;c[u>>2]=0;do{C=(c[n>>2]|0)+84+((R(c[u>>2]|0,2048+(c[ia>>2]|0)|0)|0)<<2)|0;c[A+(c[u>>2]<<2)>>2]=C;c[B+(c[u>>2]<<2)>>2]=(c[A+(c[u>>2]<<2)>>2]|0)+8192+(0-(c[w>>2]|0)<<2);C=(c[u>>2]|0)+1|0;c[u>>2]=C}while((C|0)<(c[K>>2]|0));c[P>>2]=c[O>>2];if((c[P>>2]|0)>(c[(c[fa>>2]|0)+12>>2]|0))c[P>>2]=c[(c[fa>>2]|0)+12>>2];if((c[o>>2]|0)==0|(c[p>>2]|0)<=1){Zb(c[n>>2]|0,c[w>>2]|0,c[L>>2]|0);_b(B,c[q>>2]|0,c[w>>2]|0,c[K>>2]|0,c[(c[n>>2]|0)+16>>2]|0,(c[fa>>2]|0)+16|0,(c[n>>2]|0)+76|0,c[t>>2]|0);c[m>>2]=(c[r>>2]|0)/(c[(c[n>>2]|0)+16>>2]|0)|0;ua=c[m>>2]|0;l=k;return ua|0}if(!(c[s>>2]|0)){$b(z,c[o>>2]|0,c[p>>2]|0);c[s>>2]=z}a:do if((c[ea>>2]|0)==1){c[v>>2]=0;while(1){if((c[v>>2]|0)>=(c[ha>>2]|0))break a;if(+g[(c[D>>2]|0)+(c[v>>2]<<2)>>2]>+g[(c[D>>2]|0)+((c[ha>>2]|0)+(c[v>>2]|0)<<2)>>2])va=c[v>>2]|0;else va=(c[ha>>2]|0)+(c[v>>2]|0)|0;g[(c[D>>2]|0)+(c[v>>2]<<2)>>2]=+g[(c[D>>2]|0)+(va<<2)>>2];c[v>>2]=(c[v>>2]|0)+1}}while(0);c[X>>2]=c[p>>2]<<3;c[Z>>2]=ac(c[s>>2]|0)|0;do if((c[Z>>2]|0)<(c[X>>2]|0))if((c[Z>>2]|0)==1){c[ca>>2]=Va(c[s>>2]|0,15)|0;break}else{c[ca>>2]=0;break}else c[ca>>2]=1;while(0);if(c[ca>>2]|0){c[Z>>2]=c[p>>2]<<3;va=c[Z>>2]|0;z=va-(ac(c[s>>2]|0)|0)|0;va=(c[s>>2]|0)+20|0;c[va>>2]=(c[va>>2]|0)+z}g[U>>2]=0.0;c[T>>2]=0;c[$>>2]=0;if((c[N>>2]|0)==0?((c[Z>>2]|0)+16|0)<=(c[X>>2]|0):0){if(Va(c[s>>2]|0,1)|0){c[la>>2]=Qa(c[s>>2]|0,6)|0;z=16<<c[la>>2];c[T>>2]=z+(Fa(c[s>>2]|0,4+(c[la>>2]|0)|0)|0)-1;c[ka>>2]=Fa(c[s>>2]|0,3)|0;la=(ac(c[s>>2]|0)|0)+2|0;if((la|0)<=(c[X>>2]|0))c[$>>2]=bc(c[s>>2]|0,25134,2)|0;g[U>>2]=+((c[ka>>2]|0)+1|0)*.09375}c[Z>>2]=ac(c[s>>2]|0)|0}if((c[L>>2]|0)>0?((c[Z>>2]|0)+3|0)<=(c[X>>2]|0):0){c[I>>2]=Va(c[s>>2]|0,3)|0;c[Z>>2]=ac(c[s>>2]|0)|0}else c[I>>2]=0;if(c[I>>2]|0)c[H>>2]=c[M>>2];else c[H>>2]=0;if(((c[Z>>2]|0)+3|0)<=(c[X>>2]|0))wa=Va(c[s>>2]|0,3)|0;else wa=0;c[J>>2]=wa;cc(c[fa>>2]|0,c[N>>2]|0,c[O>>2]|0,c[D>>2]|0,c[J>>2]|0,c[s>>2]|0,c[ea>>2]|0,c[L>>2]|0);J=c[ha>>2]|0;c[ma>>2]=da()|0;wa=l;l=l+((1*(J<<2)|0)+15&-16)|0;dc(c[N>>2]|0,c[O>>2]|0,c[I>>2]|0,wa,c[L>>2]|0,c[s>>2]|0);c[Z>>2]=ac(c[s>>2]|0)|0;c[x>>2]=2;if(((c[Z>>2]|0)+4|0)<=(c[X>>2]|0))c[x>>2]=bc(c[s>>2]|0,25137,5)|0;J=l;l=l+((1*(c[ha>>2]<<2)|0)+15&-16)|0;xb(c[fa>>2]|0,J,c[L>>2]|0,c[ea>>2]|0);ka=l;l=l+((1*(c[ha>>2]<<2)|0)+15&-16)|0;c[_>>2]=6;c[X>>2]=c[X>>2]<<3;c[Z>>2]=ya(c[s>>2]|0)|0;c[v>>2]=c[N>>2];while(1){if((c[v>>2]|0)>=(c[O>>2]|0))break;la=R(c[ea>>2]|0,(b[(c[ja>>2]|0)+((c[v>>2]|0)+1<<1)>>1]|0)-(b[(c[ja>>2]|0)+(c[v>>2]<<1)>>1]|0)|0)|0;c[na>>2]=la<<c[L>>2];la=c[na>>2]|0;if((c[na>>2]<<3|0)<((48>(c[na>>2]|0)?48:c[na>>2]|0)|0))za=la<<3;else za=48>(la|0)?48:c[na>>2]|0;c[oa>>2]=za;c[pa>>2]=c[_>>2];c[qa>>2]=0;while(1){if(((c[Z>>2]|0)+(c[pa>>2]<<3)|0)>=(c[X>>2]|0))break;if((c[qa>>2]|0)>=(c[J+(c[v>>2]<<2)>>2]|0))break;c[ra>>2]=Va(c[s>>2]|0,c[pa>>2]|0)|0;c[Z>>2]=ya(c[s>>2]|0)|0;if(!(c[ra>>2]|0))break;c[qa>>2]=(c[qa>>2]|0)+(c[oa>>2]|0);c[X>>2]=(c[X>>2]|0)-(c[oa>>2]|0);c[pa>>2]=1}c[ka+(c[v>>2]<<2)>>2]=c[qa>>2];if((c[qa>>2]|0)>0)c[_>>2]=2>((c[_>>2]|0)-1|0)?2:(c[_>>2]|0)-1|0;c[v>>2]=(c[v>>2]|0)+1}_=l;l=l+((1*(c[ha>>2]<<2)|0)+15&-16)|0;if(((c[Z>>2]|0)+48|0)<=(c[X>>2]|0))Aa=bc(c[s>>2]|0,25141,7)|0;else Aa=5;c[S>>2]=Aa;Aa=c[p>>2]<<3<<3;c[y>>2]=Aa-(ya(c[s>>2]|0)|0)-1;if((c[I>>2]|0)!=0&(c[L>>2]|0)>=2)Ba=(c[y>>2]|0)>=((c[L>>2]|0)+2<<3|0);else Ba=0;c[aa>>2]=Ba?8:0;c[y>>2]=(c[y>>2]|0)-(c[aa>>2]|0);Ba=l;l=l+((1*(c[ha>>2]<<2)|0)+15&-16)|0;Aa=l;l=l+((1*(c[ha>>2]<<2)|0)+15&-16)|0;c[Q>>2]=zb(c[fa>>2]|0,c[N>>2]|0,c[O>>2]|0,ka,J,c[S>>2]|0,V,W,c[y>>2]|0,Y,Ba,_,Aa,c[ea>>2]|0,c[L>>2]|0,c[s>>2]|0,0,0,0)|0;ec(c[fa>>2]|0,c[N>>2]|0,c[O>>2]|0,c[D>>2]|0,_,c[s>>2]|0,c[ea>>2]|0);c[u>>2]=0;do{Le(c[A+(c[u>>2]<<2)>>2]|0,(c[A+(c[u>>2]<<2)>>2]|0)+(c[w>>2]<<2)|0,(2048-(c[w>>2]|0)+((c[ia>>2]|0)/2|0)<<2)+0|0)|0;y=(c[u>>2]|0)+1|0;c[u>>2]=y}while((y|0)<(c[K>>2]|0));A=R(c[ea>>2]|0,c[ha>>2]|0)|0;y=l;l=l+((1*A|0)+15&-16)|0;A=(R(c[ea>>2]|0,c[w>>2]|0)|0)<<2;S=l;l=l+((1*A|0)+15&-16)|0;xa(0,c[fa>>2]|0,c[N>>2]|0,c[O>>2]|0,S,(c[ea>>2]|0)==2?S+(c[w>>2]<<2)|0:0,y,0,Ba,c[H>>2]|0,c[x>>2]|0,c[W>>2]|0,c[V>>2]|0,wa,(c[p>>2]<<6)-(c[aa>>2]|0)|0,c[Y>>2]|0,c[s>>2]|0,c[L>>2]|0,c[Q>>2]|0,(c[n>>2]|0)+36|0);if((c[aa>>2]|0)>0)c[ba>>2]=Fa(c[s>>2]|0,1)|0;aa=c[fa>>2]|0;Q=c[N>>2]|0;Y=c[O>>2]|0;wa=c[D>>2]|0;V=c[p>>2]<<3;W=V-(ac(c[s>>2]|0)|0)|0;fc(aa,Q,Y,wa,_,Aa,W,c[s>>2]|0,c[ea>>2]|0);if(c[ba>>2]|0)sa(c[fa>>2]|0,S,y,c[L>>2]|0,c[ea>>2]|0,c[w>>2]|0,c[N>>2]|0,c[O>>2]|0,c[D>>2]|0,c[E>>2]|0,c[F>>2]|0,Ba,c[(c[n>>2]|0)+36>>2]|0);b:do if(c[ca>>2]|0){c[v>>2]=0;while(1){if((c[v>>2]|0)>=(R(c[ea>>2]|0,c[ha>>2]|0)|0))break b;g[(c[D>>2]|0)+(c[v>>2]<<2)>>2]=-28.0;c[v>>2]=(c[v>>2]|0)+1}}while(0);gc(c[fa>>2]|0,S,B,c[D>>2]|0,c[N>>2]|0,c[P>>2]|0,c[ea>>2]|0,c[K>>2]|0,c[I>>2]|0,c[L>>2]|0,c[(c[n>>2]|0)+16>>2]|0,c[ca>>2]|0);c[u>>2]=0;do{if((c[(c[n>>2]|0)+52>>2]|0)>15)Ca=c[(c[n>>2]|0)+52>>2]|0;else Ca=15;c[(c[n>>2]|0)+52>>2]=Ca;if((c[(c[n>>2]|0)+56>>2]|0)>15)Da=c[(c[n>>2]|0)+56>>2]|0;else Da=15;c[(c[n>>2]|0)+56>>2]=Da;vb(c[B+(c[u>>2]<<2)>>2]|0,c[B+(c[u>>2]<<2)>>2]|0,c[(c[n>>2]|0)+56>>2]|0,c[(c[n>>2]|0)+52>>2]|0,c[(c[fa>>2]|0)+44>>2]|0,+g[(c[n>>2]|0)+64>>2],+g[(c[n>>2]|0)+60>>2],c[(c[n>>2]|0)+72>>2]|0,c[(c[n>>2]|0)+68>>2]|0,c[(c[fa>>2]|0)+60>>2]|0,c[ia>>2]|0);if(c[L>>2]|0)vb((c[B+(c[u>>2]<<2)>>2]|0)+(c[(c[fa>>2]|0)+44>>2]<<2)|0,(c[B+(c[u>>2]<<2)>>2]|0)+(c[(c[fa>>2]|0)+44>>2]<<2)|0,c[(c[n>>2]|0)+52>>2]|0,c[T>>2]|0,(c[w>>2]|0)-(c[(c[fa>>2]|0)+44>>2]|0)|0,+g[(c[n>>2]|0)+60>>2],+g[U>>2],c[(c[n>>2]|0)+68>>2]|0,c[$>>2]|0,c[(c[fa>>2]|0)+60>>2]|0,c[ia>>2]|0);ca=(c[u>>2]|0)+1|0;c[u>>2]=ca}while((ca|0)<(c[K>>2]|0));c[(c[n>>2]|0)+56>>2]=c[(c[n>>2]|0)+52>>2];g[(c[n>>2]|0)+64>>2]=+g[(c[n>>2]|0)+60>>2];c[(c[n>>2]|0)+72>>2]=c[(c[n>>2]|0)+68>>2];c[(c[n>>2]|0)+52>>2]=c[T>>2];g[(c[n>>2]|0)+60>>2]=+g[U>>2];c[(c[n>>2]|0)+68>>2]=c[$>>2];if(c[L>>2]|0){c[(c[n>>2]|0)+56>>2]=c[(c[n>>2]|0)+52>>2];g[(c[n>>2]|0)+64>>2]=+g[(c[n>>2]|0)+60>>2];c[(c[n>>2]|0)+72>>2]=c[(c[n>>2]|0)+68>>2]}if((c[ea>>2]|0)==1)Ie((c[D>>2]|0)+(c[ha>>2]<<2)|0,c[D>>2]|0,(c[ha>>2]<<2)+0|0)|0;c:do if(c[I>>2]|0){c[v>>2]=0;while(1){if((c[v>>2]|0)>=(c[ha>>2]<<1|0))break c;if(+g[(c[E>>2]|0)+(c[v>>2]<<2)>>2]<+g[(c[D>>2]|0)+(c[v>>2]<<2)>>2])Ea=(c[E>>2]|0)+(c[v>>2]<<2)|0;else Ea=(c[D>>2]|0)+(c[v>>2]<<2)|0;g[(c[E>>2]|0)+(c[v>>2]<<2)>>2]=+g[Ea>>2];c[v>>2]=(c[v>>2]|0)+1}}else{Ie(c[F>>2]|0,c[E>>2]|0,(c[ha>>2]<<1<<2)+0|0)|0;Ie(c[E>>2]|0,c[D>>2]|0,(c[ha>>2]<<1<<2)+0|0)|0;c[v>>2]=0;while(1){if((c[v>>2]|0)>=(c[ha>>2]<<1|0))break c;if(+g[(c[G>>2]|0)+(c[v>>2]<<2)>>2]+ +(c[M>>2]|0)*1.0000000474974513e-03<+g[(c[D>>2]|0)+(c[v>>2]<<2)>>2])Ga=+g[(c[G>>2]|0)+(c[v>>2]<<2)>>2]+ +(c[M>>2]|0)*1.0000000474974513e-03;else Ga=+g[(c[D>>2]|0)+(c[v>>2]<<2)>>2];g[(c[G>>2]|0)+(c[v>>2]<<2)>>2]=Ga;c[v>>2]=(c[v>>2]|0)+1}}while(0);c[u>>2]=0;do{c[v>>2]=0;while(1){if((c[v>>2]|0)>=(c[N>>2]|0))break;G=R(c[u>>2]|0,c[ha>>2]|0)|0;g[(c[D>>2]|0)+(G+(c[v>>2]|0)<<2)>>2]=0.0;G=R(c[u>>2]|0,c[ha>>2]|0)|0;g[(c[F>>2]|0)+(G+(c[v>>2]|0)<<2)>>2]=-28.0;G=R(c[u>>2]|0,c[ha>>2]|0)|0;g[(c[E>>2]|0)+(G+(c[v>>2]|0)<<2)>>2]=-28.0;c[v>>2]=(c[v>>2]|0)+1}c[v>>2]=c[O>>2];while(1){if((c[v>>2]|0)>=(c[ha>>2]|0))break;G=R(c[u>>2]|0,c[ha>>2]|0)|0;g[(c[D>>2]|0)+(G+(c[v>>2]|0)<<2)>>2]=0.0;G=R(c[u>>2]|0,c[ha>>2]|0)|0;g[(c[F>>2]|0)+(G+(c[v>>2]|0)<<2)>>2]=-28.0;G=R(c[u>>2]|0,c[ha>>2]|0)|0;g[(c[E>>2]|0)+(G+(c[v>>2]|0)<<2)>>2]=-28.0;c[v>>2]=(c[v>>2]|0)+1}G=(c[u>>2]|0)+1|0;c[u>>2]=G}while((G|0)<2);c[(c[n>>2]|0)+36>>2]=c[(c[s>>2]|0)+28>>2];_b(B,c[q>>2]|0,c[w>>2]|0,c[K>>2]|0,c[(c[n>>2]|0)+16>>2]|0,(c[fa>>2]|0)+16|0,(c[n>>2]|0)+76|0,c[t>>2]|0);c[(c[n>>2]|0)+48>>2]=0;t=ac(c[s>>2]|0)|0;if((t|0)>(c[p>>2]<<3|0)){c[m>>2]=-3;c[ta>>2]=1}else{if(hc(c[s>>2]|0)|0)c[(c[n>>2]|0)+40>>2]=1;c[m>>2]=(c[r>>2]|0)/(c[(c[n>>2]|0)+16>>2]|0)|0;c[ta>>2]=1}ga(c[ma>>2]|0);ua=c[m>>2]|0;l=k;return ua|0}function Zb(a,d,e){a=a|0;d=d|0;e=e|0;var f=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,$=0,aa=0,ba=0,ca=0,ea=0,fa=0,ha=0,ia=0,ja=0,ka=0,la=0,ma=0,na=0,oa=0,pa=0,ra=0,sa=0,ta=0;f=l;l=l+4608|0;h=f+4604|0;i=f+4600|0;j=f+4596|0;k=f+4592|0;m=f+4588|0;n=f+4584|0;o=f+4576|0;p=f+4568|0;q=f+4560|0;r=f+4556|0;s=f+4552|0;t=f+4548|0;u=f+4544|0;v=f+4540|0;w=f+4536|0;x=f+4532|0;y=f+4528|0;z=f+4524|0;A=f+4520|0;B=f+4516|0;C=f+4512|0;D=f+4508|0;E=f+4504|0;G=f+4500|0;H=f+4496|0;I=f+4492|0;J=f+4488|0;K=f+4484|0;L=f+4480|0;M=f+4476|0;N=f+4472|0;O=f+4468|0;P=f+4464|0;Q=f+368|0;S=f+360|0;T=f+356|0;U=f+352|0;V=f+348|0;W=f+344|0;X=f+340|0;Y=f+336|0;Z=f+332|0;_=f+232|0;$=f+136|0;aa=f+128|0;ba=f+124|0;ca=f+120|0;ea=f+116|0;fa=f+112|0;ha=f+16|0;ia=f+12|0;ja=f+8|0;ka=f+4|0;la=f;c[h>>2]=a;c[i>>2]=d;c[j>>2]=e;c[n>>2]=c[(c[h>>2]|0)+8>>2];c[v>>2]=c[c[h>>2]>>2];c[w>>2]=c[(c[v>>2]|0)+8>>2];c[x>>2]=c[(c[v>>2]|0)+4>>2];c[B>>2]=c[(c[v>>2]|0)+32>>2];c[k>>2]=0;do{e=(c[h>>2]|0)+84+((R(c[k>>2]|0,2048+(c[x>>2]|0)|0)|0)<<2)|0;c[o+(c[k>>2]<<2)>>2]=e;c[p+(c[k>>2]<<2)>>2]=(c[o+(c[k>>2]<<2)>>2]|0)+8192+(0-(c[i>>2]|0)<<2);e=(c[k>>2]|0)+1|0;c[k>>2]=e}while((e|0)<(c[n>>2]|0));c[q>>2]=(c[h>>2]|0)+84+((R(2048+(c[x>>2]|0)|0,c[n>>2]|0)|0)<<2);c[r>>2]=(c[q>>2]|0)+((c[n>>2]|0)*24<<2);c[s>>2]=(c[r>>2]|0)+(c[w>>2]<<1<<2);c[t>>2]=(c[s>>2]|0)+(c[w>>2]<<1<<2);c[u>>2]=(c[t>>2]|0)+(c[w>>2]<<1<<2);c[z>>2]=c[(c[h>>2]|0)+48>>2];c[y>>2]=c[(c[h>>2]|0)+20>>2];c[A>>2]=((c[z>>2]|0)>=5?1:(c[y>>2]|0)!=0)&1;if(c[A>>2]|0){c[E>>2]=c[(c[h>>2]|0)+24>>2];if((c[E>>2]|0)<(c[(c[v>>2]|0)+12>>2]|0))ma=c[E>>2]|0;else ma=c[(c[v>>2]|0)+12>>2]|0;do if((c[y>>2]|0)<=(ma|0))if((c[E>>2]|0)<(c[(c[v>>2]|0)+12>>2]|0)){na=c[E>>2]|0;break}else{na=c[(c[v>>2]|0)+12>>2]|0;break}else na=c[y>>2]|0;while(0);c[G>>2]=na;na=R(c[n>>2]|0,c[i>>2]|0)|0;c[H>>2]=da()|0;ma=l;l=l+((1*(na<<2)|0)+15&-16)|0;if((c[z>>2]|0)>=5)c[D>>2]=c[u>>2];else{g[I>>2]=(c[z>>2]|0)==0?1.5:.5;c[k>>2]=0;do{c[m>>2]=c[y>>2];while(1){if((c[m>>2]|0)>=(c[E>>2]|0))break;u=R(c[k>>2]|0,c[w>>2]|0)|0;na=(c[r>>2]|0)+(u+(c[m>>2]|0)<<2)|0;g[na>>2]=+g[na>>2]-+g[I>>2];c[m>>2]=(c[m>>2]|0)+1}na=(c[k>>2]|0)+1|0;c[k>>2]=na}while((na|0)<(c[n>>2]|0));c[D>>2]=c[r>>2]}c[C>>2]=c[(c[h>>2]|0)+36>>2];c[k>>2]=0;while(1){if((c[k>>2]|0)>=(c[n>>2]|0))break;c[m>>2]=c[y>>2];while(1){if((c[m>>2]|0)>=(c[G>>2]|0))break;r=R(c[i>>2]|0,c[k>>2]|0)|0;c[K>>2]=r+(b[(c[B>>2]|0)+(c[m>>2]<<1)>>1]<<c[j>>2]);c[L>>2]=(b[(c[B>>2]|0)+((c[m>>2]|0)+1<<1)>>1]|0)-(b[(c[B>>2]|0)+(c[m>>2]<<1)>>1]|0)<<c[j>>2];c[J>>2]=0;while(1){if((c[J>>2]|0)>=(c[L>>2]|0))break;c[C>>2]=qa(c[C>>2]|0)|0;g[ma+((c[K>>2]|0)+(c[J>>2]|0)<<2)>>2]=+(c[C>>2]>>20|0);c[J>>2]=(c[J>>2]|0)+1}ua(ma+(c[K>>2]<<2)|0,c[L>>2]|0,1.0);c[m>>2]=(c[m>>2]|0)+1}c[k>>2]=(c[k>>2]|0)+1}c[(c[h>>2]|0)+36>>2]=c[C>>2];c[k>>2]=0;do{Le(c[o+(c[k>>2]<<2)>>2]|0,(c[o+(c[k>>2]<<2)>>2]|0)+(c[i>>2]<<2)|0,(2048-(c[i>>2]|0)+(c[x>>2]>>1)<<2)+0|0)|0;C=(c[k>>2]|0)+1|0;c[k>>2]=C}while((C|0)<(c[n>>2]|0));gc(c[v>>2]|0,ma,p,c[D>>2]|0,c[y>>2]|0,c[G>>2]|0,c[n>>2]|0,c[n>>2]|0,0,c[j>>2]|0,c[(c[h>>2]|0)+16>>2]|0,0);ga(c[H>>2]|0);oa=c[z>>2]|0;pa=oa+1|0;ra=c[h>>2]|0;sa=ra+48|0;c[sa>>2]=pa;l=f;return}g[N>>2]=1.0;if(!(c[z>>2]|0)){H=lc(o,c[n>>2]|0,c[(c[h>>2]|0)+32>>2]|0)|0;c[O>>2]=H;c[(c[h>>2]|0)+44>>2]=H}else{c[O>>2]=c[(c[h>>2]|0)+44>>2];g[N>>2]=.800000011920929}H=c[x>>2]|0;c[P>>2]=da()|0;j=l;l=l+((1*(H<<2)|0)+15&-16)|0;c[M>>2]=c[(c[v>>2]|0)+60>>2];c[k>>2]=0;do{g[U>>2]=0.0;c[V>>2]=c[o+(c[k>>2]<<2)>>2];c[m>>2]=0;while(1){if((c[m>>2]|0)>=1024)break;g[Q+(c[m>>2]<<2)>>2]=+g[(c[V>>2]|0)+(1024+(c[m>>2]|0)<<2)>>2];c[m>>2]=(c[m>>2]|0)+1}if(!(c[z>>2]|0)){Pb(Q,_,c[M>>2]|0,c[x>>2]|0,24,1024,c[(c[h>>2]|0)+32>>2]|0)|0;g[_>>2]=+g[_>>2]*1.000100016593933;c[m>>2]=1;while(1){if((c[m>>2]|0)>24)break;v=_+(c[m>>2]<<2)|0;g[v>>2]=+g[v>>2]-+g[_+(c[m>>2]<<2)>>2]*6.400000711437315e-05*+(c[m>>2]|0)*+(c[m>>2]|0);c[m>>2]=(c[m>>2]|0)+1}Qb((c[q>>2]|0)+((c[k>>2]|0)*24<<2)|0,_,24)}c[Y>>2]=(c[O>>2]<<1|0)<1024?c[O>>2]<<1:1024;c[m>>2]=0;while(1){if((c[m>>2]|0)>=24)break;g[$+(c[m>>2]<<2)>>2]=+g[(c[V>>2]|0)+(2048-(c[Y>>2]|0)-1-(c[m>>2]|0)<<2)>>2];c[m>>2]=(c[m>>2]|0)+1}mc(Q+4096+(0-(c[Y>>2]|0)<<2)|0,(c[q>>2]|0)+((c[k>>2]|0)*24<<2)|0,Q+4096+(0-(c[Y>>2]|0)<<2)|0,c[Y>>2]|0,24,$);g[aa>>2]=1.0;g[ba>>2]=1.0;c[ca>>2]=c[Y>>2]>>1;c[m>>2]=0;while(1){if((c[m>>2]|0)>=(c[ca>>2]|0))break;g[ea>>2]=+g[Q+(1024-(c[ca>>2]|0)+(c[m>>2]|0)<<2)>>2];g[aa>>2]=+g[aa>>2]+ +g[ea>>2]*+g[ea>>2];g[ea>>2]=+g[Q+(1024-(c[ca>>2]<<1)+(c[m>>2]|0)<<2)>>2];g[ba>>2]=+g[ba>>2]+ +g[ea>>2]*+g[ea>>2];c[m>>2]=(c[m>>2]|0)+1}g[aa>>2]=+g[aa>>2]<+g[ba>>2]?+g[aa>>2]:+g[ba>>2];g[S>>2]=+F(+(+g[aa>>2]/+g[ba>>2]));Le(c[V>>2]|0,(c[V>>2]|0)+(c[i>>2]<<2)|0,(2048-(c[i>>2]|0)<<2)+0|0)|0;c[W>>2]=1024-(c[O>>2]|0);c[X>>2]=(c[i>>2]|0)+(c[x>>2]|0);g[T>>2]=+g[N>>2]*+g[S>>2];c[Z>>2]=0;c[m>>2]=0;while(1){if((c[m>>2]|0)>=(c[X>>2]|0))break;if((c[Z>>2]|0)>=(c[O>>2]|0)){c[Z>>2]=(c[Z>>2]|0)-(c[O>>2]|0);g[T>>2]=+g[T>>2]*+g[S>>2]}g[(c[V>>2]|0)+(2048-(c[i>>2]|0)+(c[m>>2]|0)<<2)>>2]=+g[T>>2]*+g[Q+((c[W>>2]|0)+(c[Z>>2]|0)<<2)>>2];g[fa>>2]=+g[(c[V>>2]|0)+(1024-(c[i>>2]|0)+(c[W>>2]|0)+(c[Z>>2]|0)<<2)>>2];g[U>>2]=+g[U>>2]+ +g[fa>>2]*+g[fa>>2];c[m>>2]=(c[m>>2]|0)+1;c[Z>>2]=(c[Z>>2]|0)+1}c[m>>2]=0;while(1){ta=c[V>>2]|0;if((c[m>>2]|0)>=24)break;g[ha+(c[m>>2]<<2)>>2]=+g[ta+(2048-(c[i>>2]|0)-1-(c[m>>2]|0)<<2)>>2];c[m>>2]=(c[m>>2]|0)+1}nc(ta+8192+(0-(c[i>>2]|0)<<2)|0,(c[q>>2]|0)+((c[k>>2]|0)*24<<2)|0,(c[V>>2]|0)+8192+(0-(c[i>>2]|0)<<2)|0,c[X>>2]|0,24,ha);g[ia>>2]=0.0;c[m>>2]=0;while(1){if((c[m>>2]|0)>=(c[X>>2]|0))break;g[ja>>2]=+g[(c[V>>2]|0)+(2048-(c[i>>2]|0)+(c[m>>2]|0)<<2)>>2];g[ia>>2]=+g[ia>>2]+ +g[ja>>2]*+g[ja>>2];c[m>>2]=(c[m>>2]|0)+1}a:do if(+g[U>>2]>+g[ia>>2]*.20000000298023224){if(+g[U>>2]<+g[ia>>2]){g[ka>>2]=+F(+((+g[U>>2]+1.0)/(+g[ia>>2]+1.0)));c[m>>2]=0;while(1){if((c[m>>2]|0)>=(c[x>>2]|0))break;g[la>>2]=1.0-+g[(c[M>>2]|0)+(c[m>>2]<<2)>>2]*(1.0-+g[ka>>2]);g[(c[V>>2]|0)+(2048-(c[i>>2]|0)+(c[m>>2]|0)<<2)>>2]=+g[la>>2]*+g[(c[V>>2]|0)+(2048-(c[i>>2]|0)+(c[m>>2]|0)<<2)>>2];c[m>>2]=(c[m>>2]|0)+1}c[m>>2]=c[x>>2];while(1){if((c[m>>2]|0)>=(c[X>>2]|0))break a;g[(c[V>>2]|0)+(2048-(c[i>>2]|0)+(c[m>>2]|0)<<2)>>2]=+g[ka>>2]*+g[(c[V>>2]|0)+(2048-(c[i>>2]|0)+(c[m>>2]|0)<<2)>>2];c[m>>2]=(c[m>>2]|0)+1}}}else{c[m>>2]=0;while(1){if((c[m>>2]|0)>=(c[X>>2]|0))break a;g[(c[V>>2]|0)+(2048-(c[i>>2]|0)+(c[m>>2]|0)<<2)>>2]=0.0;c[m>>2]=(c[m>>2]|0)+1}}while(0);vb(j,(c[V>>2]|0)+8192|0,c[(c[h>>2]|0)+52>>2]|0,c[(c[h>>2]|0)+52>>2]|0,c[x>>2]|0,-+g[(c[h>>2]|0)+60>>2],-+g[(c[h>>2]|0)+60>>2],c[(c[h>>2]|0)+68>>2]|0,c[(c[h>>2]|0)+68>>2]|0,0,0);c[m>>2]=0;while(1){if((c[m>>2]|0)>=((c[x>>2]|0)/2|0|0))break;g[(c[V>>2]|0)+(2048+(c[m>>2]|0)<<2)>>2]=+g[(c[M>>2]|0)+(c[m>>2]<<2)>>2]*+g[j+((c[x>>2]|0)-1-(c[m>>2]|0)<<2)>>2]+ +g[(c[M>>2]|0)+((c[x>>2]|0)-(c[m>>2]|0)-1<<2)>>2]*+g[j+(c[m>>2]<<2)>>2];c[m>>2]=(c[m>>2]|0)+1}v=(c[k>>2]|0)+1|0;c[k>>2]=v}while((v|0)<(c[n>>2]|0));ga(c[P>>2]|0);oa=c[z>>2]|0;pa=oa+1|0;ra=c[h>>2]|0;sa=ra+48|0;c[sa>>2]=pa;l=f;return}function _b(a,b,d,e,f,h,i,j){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;h=h|0;i=i|0;j=j|0;var k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0.0;k=l;l=l+80|0;m=k+72|0;n=k+68|0;o=k+64|0;p=k+60|0;q=k+56|0;r=k+52|0;s=k+48|0;t=k+40|0;u=k+36|0;v=k+32|0;w=k+28|0;x=k+24|0;y=k+20|0;z=k+16|0;A=k+12|0;B=k+8|0;C=k+4|0;D=k;c[m>>2]=a;c[n>>2]=b;c[o>>2]=d;c[p>>2]=e;c[q>>2]=f;c[r>>2]=h;c[s>>2]=i;c[k+44>>2]=j;c[v>>2]=0;j=c[o>>2]|0;c[x>>2]=da()|0;i=l;l=l+((1*(j<<2)|0)+15&-16)|0;g[w>>2]=+g[c[r>>2]>>2];c[u>>2]=(c[o>>2]|0)/(c[q>>2]|0)|0;c[t>>2]=0;do{g[B>>2]=+g[(c[s>>2]|0)+(c[t>>2]<<2)>>2];c[z>>2]=c[(c[m>>2]|0)+(c[t>>2]<<2)>>2];c[A>>2]=(c[n>>2]|0)+(c[t>>2]<<2);r=(c[q>>2]|0)>1;c[y>>2]=0;a:do if(r){while(1){if((c[y>>2]|0)>=(c[o>>2]|0))break;g[C>>2]=+g[(c[z>>2]|0)+(c[y>>2]<<2)>>2]+ +g[B>>2]+1.0000000031710769e-30;g[B>>2]=+g[w>>2]*+g[C>>2];g[i+(c[y>>2]<<2)>>2]=+g[C>>2];c[y>>2]=(c[y>>2]|0)+1}c[v>>2]=1}else while(1){if((c[y>>2]|0)>=(c[o>>2]|0))break a;g[D>>2]=+g[(c[z>>2]|0)+(c[y>>2]<<2)>>2]+ +g[B>>2]+1.0000000031710769e-30;g[B>>2]=+g[w>>2]*+g[D>>2];g[(c[A>>2]|0)+((R(c[y>>2]|0,c[p>>2]|0)|0)<<2)>>2]=+g[D>>2]*.000030517578125;c[y>>2]=(c[y>>2]|0)+1}while(0);g[(c[s>>2]|0)+(c[t>>2]<<2)>>2]=+g[B>>2];b:do if(c[v>>2]|0){c[y>>2]=0;while(1){if((c[y>>2]|0)>=(c[u>>2]|0))break b;E=+g[i+((R(c[y>>2]|0,c[q>>2]|0)|0)<<2)>>2]*.000030517578125;g[(c[A>>2]|0)+((R(c[y>>2]|0,c[p>>2]|0)|0)<<2)>>2]=E;c[y>>2]=(c[y>>2]|0)+1}}while(0);r=(c[t>>2]|0)+1|0;c[t>>2]=r}while((r|0)<(c[p>>2]|0));ga(c[x>>2]|0);l=k;return}function $b(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;e=l;l=l+16|0;f=e+8|0;g=e+4|0;h=e;c[f>>2]=a;c[g>>2]=b;c[h>>2]=d;c[c[f>>2]>>2]=c[g>>2];c[(c[f>>2]|0)+4>>2]=c[h>>2];c[(c[f>>2]|0)+8>>2]=0;c[(c[f>>2]|0)+12>>2]=0;c[(c[f>>2]|0)+16>>2]=0;c[(c[f>>2]|0)+20>>2]=9;c[(c[f>>2]|0)+24>>2]=0;c[(c[f>>2]|0)+28>>2]=128;h=Za(c[f>>2]|0)|0;c[(c[f>>2]|0)+40>>2]=h;c[(c[f>>2]|0)+32>>2]=(c[(c[f>>2]|0)+28>>2]|0)-1-(c[(c[f>>2]|0)+40>>2]>>1);c[(c[f>>2]|0)+44>>2]=0;Ya(c[f>>2]|0);l=e;return}function ac(a){a=a|0;var b=0,d=0;b=l;l=l+16|0;d=b;c[d>>2]=a;a=(c[(c[d>>2]|0)+20>>2]|0)-(32-(U(c[(c[d>>2]|0)+28>>2]|0)|0))|0;l=b;return a|0}function bc(a,b,e){a=a|0;b=b|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0;f=l;l=l+32|0;g=f+28|0;h=f+24|0;i=f+20|0;j=f+16|0;k=f+12|0;m=f+8|0;n=f+4|0;o=f;c[g>>2]=a;c[h>>2]=b;c[i>>2]=e;c[m>>2]=c[(c[g>>2]|0)+28>>2];c[k>>2]=c[(c[g>>2]|0)+32>>2];c[j>>2]=(c[m>>2]|0)>>>(c[i>>2]|0);c[o>>2]=-1;do{c[n>>2]=c[m>>2];i=c[j>>2]|0;e=c[h>>2]|0;b=(c[o>>2]|0)+1|0;c[o>>2]=b;c[m>>2]=R(i,d[e+b>>0]|0)|0}while((c[k>>2]|0)>>>0<(c[m>>2]|0)>>>0);c[(c[g>>2]|0)+32>>2]=(c[k>>2]|0)-(c[m>>2]|0);c[(c[g>>2]|0)+28>>2]=(c[n>>2]|0)-(c[m>>2]|0);Ya(c[g>>2]|0);l=f;return c[o>>2]|0}function cc(a,b,e,f,h,i,j,k){a=a|0;b=b|0;e=e|0;f=f|0;h=h|0;i=i|0;j=j|0;k=k|0;var m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0.0,I=0.0;m=l;l=l+96|0;n=m+80|0;o=m+76|0;p=m+72|0;q=m+68|0;r=m+64|0;s=m+60|0;t=m+56|0;u=m+52|0;v=m+48|0;w=m+44|0;x=m+40|0;y=m+32|0;z=m+28|0;A=m+24|0;B=m+20|0;C=m+16|0;D=m+12|0;E=m+8|0;F=m+4|0;G=m;c[n>>2]=a;c[o>>2]=b;c[p>>2]=e;c[q>>2]=f;c[r>>2]=h;c[s>>2]=i;c[t>>2]=j;c[u>>2]=k;c[v>>2]=24795+((c[u>>2]|0)*84|0)+((c[r>>2]|0)*42|0);c[y>>2]=0;c[y+4>>2]=0;if(c[r>>2]|0){g[z>>2]=0.0;g[A>>2]=.149993896484375}else{g[A>>2]=+g[17416+(c[u>>2]<<2)>>2];g[z>>2]=+g[17400+(c[u>>2]<<2)>>2]}c[B>>2]=c[(c[s>>2]|0)+4>>2]<<3;c[w>>2]=c[o>>2];while(1){if((c[w>>2]|0)>=(c[p>>2]|0))break;c[x>>2]=0;do{c[C>>2]=Cb(c[s>>2]|0)|0;do if(((c[B>>2]|0)-(c[C>>2]|0)|0)<15){if(((c[B>>2]|0)-(c[C>>2]|0)|0)>=2){c[D>>2]=bc(c[s>>2]|0,25131,2)|0;c[D>>2]=c[D>>2]>>1^0-(c[D>>2]&1);break}if(((c[B>>2]|0)-(c[C>>2]|0)|0)>=1){c[D>>2]=0-(Va(c[s>>2]|0,1)|0);break}else{c[D>>2]=-1;break}}else{c[G>>2]=((c[w>>2]|0)<20?c[w>>2]|0:20)<<1;c[D>>2]=jc(c[s>>2]|0,(d[(c[v>>2]|0)+(c[G>>2]|0)>>0]|0)<<7,(d[(c[v>>2]|0)+((c[G>>2]|0)+1)>>0]|0)<<6)|0}while(0);g[E>>2]=+(c[D>>2]|0);if(-9.0>+g[(c[q>>2]|0)+((c[w>>2]|0)+(R(c[x>>2]|0,c[(c[n>>2]|0)+8>>2]|0)|0)<<2)>>2])H=-9.0;else H=+g[(c[q>>2]|0)+((c[w>>2]|0)+(R(c[x>>2]|0,c[(c[n>>2]|0)+8>>2]|0)|0)<<2)>>2];g[(c[q>>2]|0)+((c[w>>2]|0)+(R(c[x>>2]|0,c[(c[n>>2]|0)+8>>2]|0)|0)<<2)>>2]=H;I=+g[z>>2]*+g[(c[q>>2]|0)+((c[w>>2]|0)+(R(c[x>>2]|0,c[(c[n>>2]|0)+8>>2]|0)|0)<<2)>>2];g[F>>2]=I+ +g[y+(c[x>>2]<<2)>>2]+ +g[E>>2];g[(c[q>>2]|0)+((c[w>>2]|0)+(R(c[x>>2]|0,c[(c[n>>2]|0)+8>>2]|0)|0)<<2)>>2]=+g[F>>2];g[y+(c[x>>2]<<2)>>2]=+g[y+(c[x>>2]<<2)>>2]+ +g[E>>2]-+g[A>>2]*+g[E>>2];o=(c[x>>2]|0)+1|0;c[x>>2]=o}while((o|0)<(c[t>>2]|0));c[w>>2]=(c[w>>2]|0)+1}l=m;return}function dc(b,d,e,f,g,h){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0;i=l;l=l+64|0;j=i+52|0;k=i+48|0;m=i+44|0;n=i+40|0;o=i+36|0;p=i+32|0;q=i+28|0;r=i+24|0;s=i+20|0;t=i+16|0;u=i+12|0;v=i+8|0;w=i+4|0;x=i;c[j>>2]=b;c[k>>2]=d;c[m>>2]=e;c[n>>2]=f;c[o>>2]=g;c[p>>2]=h;c[w>>2]=c[(c[p>>2]|0)+4>>2]<<3;c[x>>2]=ac(c[p>>2]|0)|0;c[v>>2]=c[m>>2]|0?2:4;if((c[o>>2]|0)>0)y=((c[x>>2]|0)+(c[v>>2]|0)+1|0)>>>0<=(c[w>>2]|0)>>>0;else y=0;c[t>>2]=y&1;c[w>>2]=(c[w>>2]|0)-(c[t>>2]|0);c[r>>2]=0;c[u>>2]=0;c[q>>2]=c[j>>2];while(1){if((c[q>>2]|0)>=(c[k>>2]|0))break;if(((c[x>>2]|0)+(c[v>>2]|0)|0)>>>0<=(c[w>>2]|0)>>>0){y=Va(c[p>>2]|0,c[v>>2]|0)|0;c[r>>2]=c[r>>2]^y;c[x>>2]=ac(c[p>>2]|0)|0;c[u>>2]=c[u>>2]|c[r>>2]}c[(c[n>>2]|0)+(c[q>>2]<<2)>>2]=c[r>>2];c[v>>2]=c[m>>2]|0?4:5;c[q>>2]=(c[q>>2]|0)+1}c[s>>2]=0;if(c[t>>2]|0?(a[20526+(c[o>>2]<<3)+((c[m>>2]<<2)+0+(c[u>>2]|0))>>0]|0)!=(a[20526+(c[o>>2]<<3)+((c[m>>2]<<2)+2+(c[u>>2]|0))>>0]|0):0)c[s>>2]=Va(c[p>>2]|0,1)|0;c[q>>2]=c[j>>2];while(1){if((c[q>>2]|0)>=(c[k>>2]|0))break;c[(c[n>>2]|0)+(c[q>>2]<<2)>>2]=a[20526+(c[o>>2]<<3)+((c[m>>2]<<2)+(c[s>>2]<<1)+(c[(c[n>>2]|0)+(c[q>>2]<<2)>>2]|0))>>0];c[q>>2]=(c[q>>2]|0)+1}l=i;return}function ec(a,b,d,e,f,h,i){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;h=h|0;i=i|0;var j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0;j=l;l=l+48|0;k=j+40|0;m=j+36|0;n=j+32|0;o=j+28|0;p=j+24|0;q=j+20|0;r=j+16|0;s=j+12|0;t=j+8|0;u=j+4|0;v=j;c[k>>2]=a;c[m>>2]=b;c[n>>2]=d;c[o>>2]=e;c[p>>2]=f;c[q>>2]=h;c[r>>2]=i;c[s>>2]=c[m>>2];while(1){if((c[s>>2]|0)>=(c[n>>2]|0))break;if((c[(c[p>>2]|0)+(c[s>>2]<<2)>>2]|0)>0){c[t>>2]=0;do{c[u>>2]=Fa(c[q>>2]|0,c[(c[p>>2]|0)+(c[s>>2]<<2)>>2]|0)|0;g[v>>2]=(+(c[u>>2]|0)+.5)*+(1<<14-(c[(c[p>>2]|0)+(c[s>>2]<<2)>>2]|0)|0)*.00006103515625-.5;m=(c[o>>2]|0)+((c[s>>2]|0)+(R(c[t>>2]|0,c[(c[k>>2]|0)+8>>2]|0)|0)<<2)|0;g[m>>2]=+g[m>>2]+ +g[v>>2];m=(c[t>>2]|0)+1|0;c[t>>2]=m}while((m|0)<(c[r>>2]|0))}c[s>>2]=(c[s>>2]|0)+1}l=j;return}function fc(a,b,d,e,f,h,i,j,k){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;h=h|0;i=i|0;j=j|0;k=k|0;var m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0;m=l;l=l+64|0;n=m+52|0;o=m+48|0;p=m+44|0;q=m+40|0;r=m+36|0;s=m+32|0;t=m+28|0;u=m+24|0;v=m+20|0;w=m+16|0;x=m+12|0;y=m+8|0;z=m+4|0;A=m;c[n>>2]=a;c[o>>2]=b;c[p>>2]=d;c[q>>2]=e;c[r>>2]=f;c[s>>2]=h;c[t>>2]=i;c[u>>2]=j;c[v>>2]=k;c[x>>2]=0;while(1){if((c[x>>2]|0)>=2)break;c[w>>2]=c[o>>2];while(1){if((c[w>>2]|0)>=(c[p>>2]|0))break;if((c[t>>2]|0)<(c[v>>2]|0))break;if((c[(c[r>>2]|0)+(c[w>>2]<<2)>>2]|0)<8?(c[(c[s>>2]|0)+(c[w>>2]<<2)>>2]|0)==(c[x>>2]|0):0){c[y>>2]=0;do{c[z>>2]=Fa(c[u>>2]|0,1)|0;g[A>>2]=(+(c[z>>2]|0)-.5)*+(1<<14-(c[(c[r>>2]|0)+(c[w>>2]<<2)>>2]|0)-1|0)*.00006103515625;k=(c[q>>2]|0)+((c[w>>2]|0)+(R(c[y>>2]|0,c[(c[n>>2]|0)+8>>2]|0)|0)<<2)|0;g[k>>2]=+g[k>>2]+ +g[A>>2];c[t>>2]=(c[t>>2]|0)+-1;k=(c[y>>2]|0)+1|0;c[y>>2]=k}while((k|0)<(c[v>>2]|0))}c[w>>2]=(c[w>>2]|0)+1}c[x>>2]=(c[x>>2]|0)+1}l=m;return}function gc(a,b,d,e,f,h,i,j,k,m,n,o){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;h=h|0;i=i|0;j=j|0;k=k|0;m=m|0;n=n|0;o=o|0;var p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0;p=l;l=l+112|0;q=p+96|0;r=p+92|0;s=p+88|0;t=p+84|0;u=p+80|0;v=p+76|0;w=p+72|0;x=p+68|0;y=p+64|0;z=p+60|0;A=p+56|0;B=p+52|0;C=p+48|0;D=p+44|0;E=p+40|0;F=p+36|0;G=p+32|0;H=p+28|0;I=p+24|0;J=p+20|0;K=p+16|0;L=p+12|0;M=p+8|0;N=p+4|0;O=p;c[q>>2]=a;c[r>>2]=b;c[s>>2]=d;c[t>>2]=e;c[u>>2]=f;c[v>>2]=h;c[w>>2]=i;c[x>>2]=j;c[y>>2]=k;c[z>>2]=m;c[A>>2]=n;c[B>>2]=o;c[L>>2]=c[(c[q>>2]|0)+4>>2];c[K>>2]=c[(c[q>>2]|0)+8>>2];c[H>>2]=c[(c[q>>2]|0)+44>>2]<<c[z>>2];o=c[H>>2]|0;c[M>>2]=da()|0;n=l;l=l+((1*(o<<2)|0)+15&-16)|0;c[E>>2]=1<<c[z>>2];if(c[y>>2]|0){c[G>>2]=c[E>>2];c[I>>2]=c[(c[q>>2]|0)+44>>2];c[J>>2]=c[(c[q>>2]|0)+36>>2]}else{c[G>>2]=1;c[I>>2]=c[(c[q>>2]|0)+44>>2]<<c[z>>2];c[J>>2]=(c[(c[q>>2]|0)+36>>2]|0)-(c[z>>2]|0)}if((c[x>>2]|0)==2&(c[w>>2]|0)==1){ra(c[q>>2]|0,c[r>>2]|0,n,c[t>>2]|0,c[u>>2]|0,c[v>>2]|0,c[E>>2]|0,c[A>>2]|0,c[B>>2]|0);c[N>>2]=(c[(c[s>>2]|0)+4>>2]|0)+(((c[L>>2]|0)/2|0)<<2);Ie(c[N>>2]|0,n|0,(c[H>>2]<<2)+0|0)|0;c[F>>2]=0;while(1){if((c[F>>2]|0)>=(c[G>>2]|0))break;z=(c[c[s>>2]>>2]|0)+((R(c[I>>2]|0,c[F>>2]|0)|0)<<2)|0;ic((c[q>>2]|0)+64|0,(c[N>>2]|0)+(c[F>>2]<<2)|0,z,c[(c[q>>2]|0)+60>>2]|0,c[L>>2]|0,c[J>>2]|0,c[G>>2]|0);c[F>>2]=(c[F>>2]|0)+1}c[F>>2]=0;while(1){if((c[F>>2]|0)>=(c[G>>2]|0))break;N=(c[(c[s>>2]|0)+4>>2]|0)+((R(c[I>>2]|0,c[F>>2]|0)|0)<<2)|0;ic((c[q>>2]|0)+64|0,n+(c[F>>2]<<2)|0,N,c[(c[q>>2]|0)+60>>2]|0,c[L>>2]|0,c[J>>2]|0,c[G>>2]|0);c[F>>2]=(c[F>>2]|0)+1}P=c[M>>2]|0;ga(P|0);l=p;return}if(!((c[x>>2]|0)==1&(c[w>>2]|0)==2)){c[C>>2]=0;do{w=(c[r>>2]|0)+((R(c[C>>2]|0,c[H>>2]|0)|0)<<2)|0;N=(c[t>>2]|0)+((R(c[C>>2]|0,c[K>>2]|0)|0)<<2)|0;ra(c[q>>2]|0,w,n,N,c[u>>2]|0,c[v>>2]|0,c[E>>2]|0,c[A>>2]|0,c[B>>2]|0);c[F>>2]=0;while(1){if((c[F>>2]|0)>=(c[G>>2]|0))break;N=(c[(c[s>>2]|0)+(c[C>>2]<<2)>>2]|0)+((R(c[I>>2]|0,c[F>>2]|0)|0)<<2)|0;ic((c[q>>2]|0)+64|0,n+(c[F>>2]<<2)|0,N,c[(c[q>>2]|0)+60>>2]|0,c[L>>2]|0,c[J>>2]|0,c[G>>2]|0);c[F>>2]=(c[F>>2]|0)+1}N=(c[C>>2]|0)+1|0;c[C>>2]=N}while((N|0)<(c[x>>2]|0));P=c[M>>2]|0;ga(P|0);l=p;return}c[O>>2]=(c[c[s>>2]>>2]|0)+(((c[L>>2]|0)/2|0)<<2);ra(c[q>>2]|0,c[r>>2]|0,n,c[t>>2]|0,c[u>>2]|0,c[v>>2]|0,c[E>>2]|0,c[A>>2]|0,c[B>>2]|0);ra(c[q>>2]|0,(c[r>>2]|0)+(c[H>>2]<<2)|0,c[O>>2]|0,(c[t>>2]|0)+(c[K>>2]<<2)|0,c[u>>2]|0,c[v>>2]|0,c[E>>2]|0,c[A>>2]|0,c[B>>2]|0);c[D>>2]=0;while(1){if((c[D>>2]|0)>=(c[H>>2]|0))break;g[n+(c[D>>2]<<2)>>2]=(+g[n+(c[D>>2]<<2)>>2]+ +g[(c[O>>2]|0)+(c[D>>2]<<2)>>2])*.5;c[D>>2]=(c[D>>2]|0)+1}c[F>>2]=0;while(1){if((c[F>>2]|0)>=(c[G>>2]|0))break;D=(c[c[s>>2]>>2]|0)+((R(c[I>>2]|0,c[F>>2]|0)|0)<<2)|0;ic((c[q>>2]|0)+64|0,n+(c[F>>2]<<2)|0,D,c[(c[q>>2]|0)+60>>2]|0,c[L>>2]|0,c[J>>2]|0,c[G>>2]|0);c[F>>2]=(c[F>>2]|0)+1}P=c[M>>2]|0;ga(P|0);l=p;return}function hc(a){a=a|0;var b=0,d=0;b=l;l=l+16|0;d=b;c[d>>2]=a;l=b;return c[(c[d>>2]|0)+44>>2]|0}function ic(a,d,e,f,h,i,j){a=a|0;d=d|0;e=e|0;f=f|0;h=h|0;i=i|0;j=j|0;var k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,S=0,T=0,U=0,V=0,W=0,X=0.0;k=l;l=l+144|0;m=k+136|0;n=k+132|0;o=k+128|0;p=k+124|0;q=k+120|0;r=k+116|0;s=k+112|0;t=k+108|0;u=k+104|0;v=k+100|0;w=k+96|0;x=k+92|0;y=k+88|0;z=k+84|0;A=k+80|0;B=k+76|0;C=k+72|0;D=k+68|0;E=k+64|0;F=k+60|0;G=k+56|0;H=k+52|0;I=k+48|0;J=k+44|0;K=k+40|0;L=k+36|0;M=k+32|0;N=k+28|0;O=k+24|0;P=k+20|0;Q=k+16|0;S=k+12|0;T=k+8|0;U=k+4|0;V=k;c[m>>2]=a;c[n>>2]=d;c[o>>2]=e;c[p>>2]=f;c[q>>2]=h;c[r>>2]=i;c[s>>2]=j;c[u>>2]=c[c[m>>2]>>2];c[x>>2]=c[(c[m>>2]|0)+24>>2];c[t>>2]=0;while(1){W=c[u>>2]>>1;if((c[t>>2]|0)>=(c[r>>2]|0))break;c[u>>2]=W;c[x>>2]=(c[x>>2]|0)+(c[u>>2]<<2);c[t>>2]=(c[t>>2]|0)+1}c[v>>2]=W;c[w>>2]=c[u>>2]>>2;c[y>>2]=c[n>>2];c[z>>2]=(c[n>>2]|0)+((R(c[s>>2]|0,(c[v>>2]|0)-1|0)|0)<<2);c[A>>2]=(c[o>>2]|0)+(c[q>>2]>>1<<2);c[B>>2]=c[x>>2];c[C>>2]=c[(c[(c[m>>2]|0)+8+(c[r>>2]<<2)>>2]|0)+44>>2];c[t>>2]=0;while(1){if((c[t>>2]|0)>=(c[w>>2]|0))break;n=c[C>>2]|0;c[C>>2]=n+2;c[D>>2]=b[n>>1];g[E>>2]=+g[c[z>>2]>>2]*+g[(c[B>>2]|0)+(c[t>>2]<<2)>>2]+ +g[c[y>>2]>>2]*+g[(c[B>>2]|0)+((c[w>>2]|0)+(c[t>>2]|0)<<2)>>2];g[F>>2]=+g[c[y>>2]>>2]*+g[(c[B>>2]|0)+(c[t>>2]<<2)>>2]-+g[c[z>>2]>>2]*+g[(c[B>>2]|0)+((c[w>>2]|0)+(c[t>>2]|0)<<2)>>2];g[(c[A>>2]|0)+((c[D>>2]<<1)+1<<2)>>2]=+g[E>>2];g[(c[A>>2]|0)+(c[D>>2]<<1<<2)>>2]=+g[F>>2];c[y>>2]=(c[y>>2]|0)+(c[s>>2]<<1<<2);c[z>>2]=(c[z>>2]|0)+(0-(c[s>>2]<<1)<<2);c[t>>2]=(c[t>>2]|0)+1}Eb(c[(c[m>>2]|0)+8+(c[r>>2]<<2)>>2]|0,(c[o>>2]|0)+(c[q>>2]>>1<<2)|0);c[G>>2]=(c[o>>2]|0)+(c[q>>2]>>1<<2);c[H>>2]=(c[o>>2]|0)+(c[q>>2]>>1<<2)+(c[v>>2]<<2)+-8;c[I>>2]=c[x>>2];c[t>>2]=0;while(1){if((c[t>>2]|0)>=((c[w>>2]|0)+1>>1|0))break;g[J>>2]=+g[(c[G>>2]|0)+4>>2];g[K>>2]=+g[c[G>>2]>>2];g[N>>2]=+g[(c[I>>2]|0)+(c[t>>2]<<2)>>2];g[O>>2]=+g[(c[I>>2]|0)+((c[w>>2]|0)+(c[t>>2]|0)<<2)>>2];g[L>>2]=+g[J>>2]*+g[N>>2]+ +g[K>>2]*+g[O>>2];g[M>>2]=+g[J>>2]*+g[O>>2]-+g[K>>2]*+g[N>>2];g[J>>2]=+g[(c[H>>2]|0)+4>>2];g[K>>2]=+g[c[H>>2]>>2];g[c[G>>2]>>2]=+g[L>>2];g[(c[H>>2]|0)+4>>2]=+g[M>>2];g[N>>2]=+g[(c[I>>2]|0)+((c[w>>2]|0)-(c[t>>2]|0)-1<<2)>>2];g[O>>2]=+g[(c[I>>2]|0)+((c[v>>2]|0)-(c[t>>2]|0)-1<<2)>>2];g[L>>2]=+g[J>>2]*+g[N>>2]+ +g[K>>2]*+g[O>>2];g[M>>2]=+g[J>>2]*+g[O>>2]-+g[K>>2]*+g[N>>2];g[c[H>>2]>>2]=+g[L>>2];g[(c[G>>2]|0)+4>>2]=+g[M>>2];c[G>>2]=(c[G>>2]|0)+8;c[H>>2]=(c[H>>2]|0)+-8;c[t>>2]=(c[t>>2]|0)+1}c[P>>2]=(c[o>>2]|0)+(c[q>>2]<<2)+-4;c[Q>>2]=c[o>>2];c[S>>2]=c[p>>2];c[T>>2]=(c[p>>2]|0)+(c[q>>2]<<2)+-4;c[t>>2]=0;while(1){if((c[t>>2]|0)>=((c[q>>2]|0)/2|0|0))break;g[U>>2]=+g[c[P>>2]>>2];g[V>>2]=+g[c[Q>>2]>>2];X=+g[c[T>>2]>>2]*+g[V>>2]-+g[c[S>>2]>>2]*+g[U>>2];p=c[Q>>2]|0;c[Q>>2]=p+4;g[p>>2]=X;X=+g[c[S>>2]>>2]*+g[V>>2]+ +g[c[T>>2]>>2]*+g[U>>2];p=c[P>>2]|0;c[P>>2]=p+-4;g[p>>2]=X;c[S>>2]=(c[S>>2]|0)+4;c[T>>2]=(c[T>>2]|0)+-4;c[t>>2]=(c[t>>2]|0)+1}l=k;return}function jc(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0;e=l;l=l+32|0;f=e+24|0;g=e+20|0;h=e+16|0;i=e+12|0;j=e+8|0;k=e+4|0;m=e;c[f>>2]=a;c[g>>2]=b;c[h>>2]=d;c[i>>2]=0;c[k>>2]=kc(c[f>>2]|0,15)|0;c[j>>2]=0;do if((c[k>>2]|0)>>>0>=(c[g>>2]|0)>>>0){c[i>>2]=(c[i>>2]|0)+1;c[j>>2]=c[g>>2];c[g>>2]=(Db(c[g>>2]|0,c[h>>2]|0)|0)+1;while(1){if((c[g>>2]|0)>>>0>1)n=(c[k>>2]|0)>>>0>=((c[j>>2]|0)+(c[g>>2]<<1)|0)>>>0;else n=0;o=c[g>>2]|0;if(!n)break;c[g>>2]=o<<1;c[j>>2]=(c[j>>2]|0)+(c[g>>2]|0);c[g>>2]=(R((c[g>>2]|0)-2|0,c[h>>2]|0)|0)>>>15;c[g>>2]=(c[g>>2]|0)+1;c[i>>2]=(c[i>>2]|0)+1}if(o>>>0<=1){c[m>>2]=((c[k>>2]|0)-(c[j>>2]|0)|0)>>>1;c[i>>2]=(c[i>>2]|0)+(c[m>>2]|0);c[j>>2]=(c[j>>2]|0)+(c[m>>2]<<1)}if((c[k>>2]|0)>>>0<((c[j>>2]|0)+(c[g>>2]|0)|0)>>>0){c[i>>2]=0-(c[i>>2]|0);break}else{c[j>>2]=(c[j>>2]|0)+(c[g>>2]|0);break}}while(0);k=c[f>>2]|0;f=c[j>>2]|0;if(((c[j>>2]|0)+(c[g>>2]|0)|0)>>>0>=32768){p=32768;Oa(k,f,p,32768);q=c[i>>2]|0;l=e;return q|0}p=(c[j>>2]|0)+(c[g>>2]|0)|0;Oa(k,f,p,32768);q=c[i>>2]|0;l=e;return q|0}function kc(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;d=l;l=l+16|0;e=d+8|0;f=d+4|0;g=d;c[e>>2]=a;c[f>>2]=b;c[(c[e>>2]|0)+36>>2]=(c[(c[e>>2]|0)+28>>2]|0)>>>(c[f>>2]|0);c[g>>2]=((c[(c[e>>2]|0)+32>>2]|0)>>>0)/((c[(c[e>>2]|0)+36>>2]|0)>>>0)|0;l=d;return (1<<c[f>>2])-((c[g>>2]|0)+1+((1<<c[f>>2])-((c[g>>2]|0)+1)&0-(1<<c[f>>2]>>>0<((c[g>>2]|0)+1|0)>>>0&1)))|0}function lc(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0;e=l;l=l+4112|0;f=e+4108|0;g=e+4104|0;h=e+4100|0;i=e+4096|0;j=e;c[f>>2]=a;c[g>>2]=b;c[h>>2]=d;Jb(c[f>>2]|0,j,2048,c[g>>2]|0,c[h>>2]|0);Kb(j+1440|0,j,1328,620,i,c[h>>2]|0);c[i>>2]=720-(c[i>>2]|0);l=e;return c[i>>2]|0}function mc(a,b,d,e,f,h){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;h=h|0;var i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0;i=l;l=l+64|0;j=i+56|0;k=i+52|0;m=i+48|0;n=i+44|0;o=i+40|0;p=i+36|0;q=i+32|0;r=i+28|0;s=i+24|0;t=i+8|0;u=i;c[j>>2]=a;c[k>>2]=b;c[m>>2]=d;c[n>>2]=e;c[o>>2]=f;c[p>>2]=h;h=c[o>>2]|0;c[s>>2]=da()|0;f=l;l=l+((1*(h<<2)|0)+15&-16)|0;h=l;l=l+((1*((c[n>>2]|0)+(c[o>>2]|0)<<2)|0)+15&-16)|0;c[q>>2]=0;while(1){if((c[q>>2]|0)>=(c[o>>2]|0))break;g[f+(c[q>>2]<<2)>>2]=+g[(c[k>>2]|0)+((c[o>>2]|0)-(c[q>>2]|0)-1<<2)>>2];c[q>>2]=(c[q>>2]|0)+1}c[q>>2]=0;while(1){if((c[q>>2]|0)>=(c[o>>2]|0))break;g[h+(c[q>>2]<<2)>>2]=+g[(c[p>>2]|0)+((c[o>>2]|0)-(c[q>>2]|0)-1<<2)>>2];c[q>>2]=(c[q>>2]|0)+1}c[q>>2]=0;while(1){if((c[q>>2]|0)>=(c[n>>2]|0))break;g[h+((c[q>>2]|0)+(c[o>>2]|0)<<2)>>2]=+g[(c[j>>2]|0)+(c[q>>2]<<2)>>2];c[q>>2]=(c[q>>2]|0)+1}c[q>>2]=0;while(1){if((c[q>>2]|0)>=(c[o>>2]|0))break;g[(c[p>>2]|0)+(c[q>>2]<<2)>>2]=+g[(c[j>>2]|0)+((c[n>>2]|0)-(c[q>>2]|0)-1<<2)>>2];c[q>>2]=(c[q>>2]|0)+1}c[q>>2]=0;while(1){if((c[q>>2]|0)>=((c[n>>2]|0)-3|0))break;c[t>>2]=0;c[t+4>>2]=0;c[t+8>>2]=0;c[t+12>>2]=0;oc(f,h+(c[q>>2]<<2)|0,t,c[o>>2]|0);g[(c[m>>2]|0)+(c[q>>2]<<2)>>2]=+g[(c[j>>2]|0)+(c[q>>2]<<2)>>2]+ +g[t>>2];g[(c[m>>2]|0)+((c[q>>2]|0)+1<<2)>>2]=+g[(c[j>>2]|0)+((c[q>>2]|0)+1<<2)>>2]+ +g[t+4>>2];g[(c[m>>2]|0)+((c[q>>2]|0)+2<<2)>>2]=+g[(c[j>>2]|0)+((c[q>>2]|0)+2<<2)>>2]+ +g[t+8>>2];g[(c[m>>2]|0)+((c[q>>2]|0)+3<<2)>>2]=+g[(c[j>>2]|0)+((c[q>>2]|0)+3<<2)>>2]+ +g[t+12>>2];c[q>>2]=(c[q>>2]|0)+4}while(1){if((c[q>>2]|0)>=(c[n>>2]|0))break;g[u>>2]=0.0;c[r>>2]=0;while(1){if((c[r>>2]|0)>=(c[o>>2]|0))break;g[u>>2]=+g[u>>2]+ +g[f+(c[r>>2]<<2)>>2]*+g[h+((c[q>>2]|0)+(c[r>>2]|0)<<2)>>2];c[r>>2]=(c[r>>2]|0)+1}g[(c[m>>2]|0)+(c[q>>2]<<2)>>2]=+g[(c[j>>2]|0)+(c[q>>2]<<2)>>2]+ +g[u>>2];c[q>>2]=(c[q>>2]|0)+1}ga(c[s>>2]|0);l=i;return}function nc(a,b,d,e,f,h){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;h=h|0;var i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0;i=l;l=l+64|0;j=i+56|0;k=i+52|0;m=i+48|0;n=i+44|0;o=i+40|0;p=i+36|0;q=i+32|0;r=i+28|0;s=i+24|0;t=i+8|0;u=i;c[j>>2]=a;c[k>>2]=b;c[m>>2]=d;c[n>>2]=e;c[o>>2]=f;c[p>>2]=h;h=c[o>>2]|0;c[s>>2]=da()|0;f=l;l=l+((1*(h<<2)|0)+15&-16)|0;h=l;l=l+((1*((c[n>>2]|0)+(c[o>>2]|0)<<2)|0)+15&-16)|0;c[q>>2]=0;while(1){if((c[q>>2]|0)>=(c[o>>2]|0))break;g[f+(c[q>>2]<<2)>>2]=+g[(c[k>>2]|0)+((c[o>>2]|0)-(c[q>>2]|0)-1<<2)>>2];c[q>>2]=(c[q>>2]|0)+1}c[q>>2]=0;while(1){if((c[q>>2]|0)>=(c[o>>2]|0))break;g[h+(c[q>>2]<<2)>>2]=-+g[(c[p>>2]|0)+((c[o>>2]|0)-(c[q>>2]|0)-1<<2)>>2];c[q>>2]=(c[q>>2]|0)+1}while(1){if((c[q>>2]|0)>=((c[n>>2]|0)+(c[o>>2]|0)|0))break;g[h+(c[q>>2]<<2)>>2]=0.0;c[q>>2]=(c[q>>2]|0)+1}c[q>>2]=0;while(1){if((c[q>>2]|0)>=((c[n>>2]|0)-3|0))break;g[t>>2]=+g[(c[j>>2]|0)+(c[q>>2]<<2)>>2];g[t+4>>2]=+g[(c[j>>2]|0)+((c[q>>2]|0)+1<<2)>>2];g[t+8>>2]=+g[(c[j>>2]|0)+((c[q>>2]|0)+2<<2)>>2];g[t+12>>2]=+g[(c[j>>2]|0)+((c[q>>2]|0)+3<<2)>>2];oc(f,h+(c[q>>2]<<2)|0,t,c[o>>2]|0);g[h+((c[q>>2]|0)+(c[o>>2]|0)<<2)>>2]=-+g[t>>2];g[(c[m>>2]|0)+(c[q>>2]<<2)>>2]=+g[t>>2];g[t+4>>2]=+g[t+4>>2]+ +g[h+((c[q>>2]|0)+(c[o>>2]|0)<<2)>>2]*+g[c[k>>2]>>2];g[h+((c[q>>2]|0)+(c[o>>2]|0)+1<<2)>>2]=-+g[t+4>>2];g[(c[m>>2]|0)+((c[q>>2]|0)+1<<2)>>2]=+g[t+4>>2];g[t+8>>2]=+g[t+8>>2]+ +g[h+((c[q>>2]|0)+(c[o>>2]|0)+1<<2)>>2]*+g[c[k>>2]>>2];g[t+8>>2]=+g[t+8>>2]+ +g[h+((c[q>>2]|0)+(c[o>>2]|0)<<2)>>2]*+g[(c[k>>2]|0)+4>>2];g[h+((c[q>>2]|0)+(c[o>>2]|0)+2<<2)>>2]=-+g[t+8>>2];g[(c[m>>2]|0)+((c[q>>2]|0)+2<<2)>>2]=+g[t+8>>2];g[t+12>>2]=+g[t+12>>2]+ +g[h+((c[q>>2]|0)+(c[o>>2]|0)+2<<2)>>2]*+g[c[k>>2]>>2];g[t+12>>2]=+g[t+12>>2]+ +g[h+((c[q>>2]|0)+(c[o>>2]|0)+1<<2)>>2]*+g[(c[k>>2]|0)+4>>2];g[t+12>>2]=+g[t+12>>2]+ +g[h+((c[q>>2]|0)+(c[o>>2]|0)<<2)>>2]*+g[(c[k>>2]|0)+8>>2];g[h+((c[q>>2]|0)+(c[o>>2]|0)+3<<2)>>2]=-+g[t+12>>2];g[(c[m>>2]|0)+((c[q>>2]|0)+3<<2)>>2]=+g[t+12>>2];c[q>>2]=(c[q>>2]|0)+4}while(1){if((c[q>>2]|0)>=(c[n>>2]|0))break;g[u>>2]=+g[(c[j>>2]|0)+(c[q>>2]<<2)>>2];c[r>>2]=0;while(1){if((c[r>>2]|0)>=(c[o>>2]|0))break;g[u>>2]=+g[u>>2]-+g[f+(c[r>>2]<<2)>>2]*+g[h+((c[q>>2]|0)+(c[r>>2]|0)<<2)>>2];c[r>>2]=(c[r>>2]|0)+1}g[h+((c[q>>2]|0)+(c[o>>2]|0)<<2)>>2]=+g[u>>2];g[(c[m>>2]|0)+(c[q>>2]<<2)>>2]=+g[u>>2];c[q>>2]=(c[q>>2]|0)+1}c[q>>2]=0;while(1){if((c[q>>2]|0)>=(c[o>>2]|0))break;g[(c[p>>2]|0)+(c[q>>2]<<2)>>2]=+g[(c[m>>2]|0)+((c[n>>2]|0)-(c[q>>2]|0)-1<<2)>>2];c[q>>2]=(c[q>>2]|0)+1}ga(c[s>>2]|0);l=i;return}function oc(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0;f=l;l=l+64|0;h=f+48|0;i=f+44|0;j=f+40|0;k=f+36|0;m=f+32|0;n=f+28|0;o=f+24|0;p=f+20|0;q=f+16|0;r=f+12|0;s=f+8|0;t=f+4|0;u=f;c[h>>2]=a;c[i>>2]=b;c[j>>2]=d;c[k>>2]=e;g[q>>2]=0.0;e=c[i>>2]|0;c[i>>2]=e+4;g[n>>2]=+g[e>>2];e=c[i>>2]|0;c[i>>2]=e+4;g[o>>2]=+g[e>>2];e=c[i>>2]|0;c[i>>2]=e+4;g[p>>2]=+g[e>>2];c[m>>2]=0;while(1){if((c[m>>2]|0)>=((c[k>>2]|0)-3|0))break;e=c[h>>2]|0;c[h>>2]=e+4;g[r>>2]=+g[e>>2];e=c[i>>2]|0;c[i>>2]=e+4;g[q>>2]=+g[e>>2];g[c[j>>2]>>2]=+g[c[j>>2]>>2]+ +g[r>>2]*+g[n>>2];g[(c[j>>2]|0)+4>>2]=+g[(c[j>>2]|0)+4>>2]+ +g[r>>2]*+g[o>>2];g[(c[j>>2]|0)+8>>2]=+g[(c[j>>2]|0)+8>>2]+ +g[r>>2]*+g[p>>2];g[(c[j>>2]|0)+12>>2]=+g[(c[j>>2]|0)+12>>2]+ +g[r>>2]*+g[q>>2];e=c[h>>2]|0;c[h>>2]=e+4;g[r>>2]=+g[e>>2];e=c[i>>2]|0;c[i>>2]=e+4;g[n>>2]=+g[e>>2];g[c[j>>2]>>2]=+g[c[j>>2]>>2]+ +g[r>>2]*+g[o>>2];g[(c[j>>2]|0)+4>>2]=+g[(c[j>>2]|0)+4>>2]+ +g[r>>2]*+g[p>>2];g[(c[j>>2]|0)+8>>2]=+g[(c[j>>2]|0)+8>>2]+ +g[r>>2]*+g[q>>2];g[(c[j>>2]|0)+12>>2]=+g[(c[j>>2]|0)+12>>2]+ +g[r>>2]*+g[n>>2];e=c[h>>2]|0;c[h>>2]=e+4;g[r>>2]=+g[e>>2];e=c[i>>2]|0;c[i>>2]=e+4;g[o>>2]=+g[e>>2];g[c[j>>2]>>2]=+g[c[j>>2]>>2]+ +g[r>>2]*+g[p>>2];g[(c[j>>2]|0)+4>>2]=+g[(c[j>>2]|0)+4>>2]+ +g[r>>2]*+g[q>>2];g[(c[j>>2]|0)+8>>2]=+g[(c[j>>2]|0)+8>>2]+ +g[r>>2]*+g[n>>2];g[(c[j>>2]|0)+12>>2]=+g[(c[j>>2]|0)+12>>2]+ +g[r>>2]*+g[o>>2];e=c[h>>2]|0;c[h>>2]=e+4;g[r>>2]=+g[e>>2];e=c[i>>2]|0;c[i>>2]=e+4;g[p>>2]=+g[e>>2];g[c[j>>2]>>2]=+g[c[j>>2]>>2]+ +g[r>>2]*+g[q>>2];g[(c[j>>2]|0)+4>>2]=+g[(c[j>>2]|0)+4>>2]+ +g[r>>2]*+g[n>>2];g[(c[j>>2]|0)+8>>2]=+g[(c[j>>2]|0)+8>>2]+ +g[r>>2]*+g[o>>2];g[(c[j>>2]|0)+12>>2]=+g[(c[j>>2]|0)+12>>2]+ +g[r>>2]*+g[p>>2];c[m>>2]=(c[m>>2]|0)+4}r=c[m>>2]|0;c[m>>2]=r+1;if((r|0)<(c[k>>2]|0)){r=c[h>>2]|0;c[h>>2]=r+4;g[s>>2]=+g[r>>2];r=c[i>>2]|0;c[i>>2]=r+4;g[q>>2]=+g[r>>2];g[c[j>>2]>>2]=+g[c[j>>2]>>2]+ +g[s>>2]*+g[n>>2];g[(c[j>>2]|0)+4>>2]=+g[(c[j>>2]|0)+4>>2]+ +g[s>>2]*+g[o>>2];g[(c[j>>2]|0)+8>>2]=+g[(c[j>>2]|0)+8>>2]+ +g[s>>2]*+g[p>>2];g[(c[j>>2]|0)+12>>2]=+g[(c[j>>2]|0)+12>>2]+ +g[s>>2]*+g[q>>2]}s=c[m>>2]|0;c[m>>2]=s+1;if((s|0)<(c[k>>2]|0)){s=c[h>>2]|0;c[h>>2]=s+4;g[t>>2]=+g[s>>2];s=c[i>>2]|0;c[i>>2]=s+4;g[n>>2]=+g[s>>2];g[c[j>>2]>>2]=+g[c[j>>2]>>2]+ +g[t>>2]*+g[o>>2];g[(c[j>>2]|0)+4>>2]=+g[(c[j>>2]|0)+4>>2]+ +g[t>>2]*+g[p>>2];g[(c[j>>2]|0)+8>>2]=+g[(c[j>>2]|0)+8>>2]+ +g[t>>2]*+g[q>>2];g[(c[j>>2]|0)+12>>2]=+g[(c[j>>2]|0)+12>>2]+ +g[t>>2]*+g[n>>2]}if((c[m>>2]|0)>=(c[k>>2]|0)){l=f;return}k=c[h>>2]|0;c[h>>2]=k+4;g[u>>2]=+g[k>>2];k=c[i>>2]|0;c[i>>2]=k+4;g[o>>2]=+g[k>>2];g[c[j>>2]>>2]=+g[c[j>>2]>>2]+ +g[u>>2]*+g[p>>2];g[(c[j>>2]|0)+4>>2]=+g[(c[j>>2]|0)+4>>2]+ +g[u>>2]*+g[q>>2];g[(c[j>>2]|0)+8>>2]=+g[(c[j>>2]|0)+8>>2]+ +g[u>>2]*+g[n>>2];g[(c[j>>2]|0)+12>>2]=+g[(c[j>>2]|0)+12>>2]+ +g[u>>2]*+g[o>>2];l=f;return}function pc(a){a=a|0;var d=0,e=0,f=0,g=0,h=0;d=l;l=l+16|0;e=d+12|0;f=d+8|0;g=d+4|0;h=d;c[e>>2]=a;c[g>>2]=32767/((c[(c[e>>2]|0)+2340>>2]|0)+1|0)|0;c[h>>2]=0;c[f>>2]=0;while(1){if((c[f>>2]|0)>=(c[(c[e>>2]|0)+2340>>2]|0))break;c[h>>2]=(c[h>>2]|0)+(c[g>>2]|0);b[(c[e>>2]|0)+2772+1280+(c[f>>2]<<1)>>1]=c[h>>2];c[f>>2]=(c[f>>2]|0)+1}c[(c[e>>2]|0)+2772+1376>>2]=0;c[(c[e>>2]|0)+2772+1380>>2]=3176576;l=d;return}function qc(a,d,e,f){a=a|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;g=l;l=l+80|0;h=g+36|0;i=g+32|0;j=g+28|0;k=g+24|0;m=g+20|0;n=g+16|0;o=g+12|0;p=g+8|0;q=g+40|0;r=g+4|0;s=g;c[h>>2]=a;c[i>>2]=d;c[j>>2]=e;c[k>>2]=f;c[r>>2]=(c[h>>2]|0)+2772;if((c[(c[h>>2]|0)+2316>>2]|0)!=(c[(c[r>>2]|0)+1384>>2]|0)){pc(c[h>>2]|0);c[(c[r>>2]|0)+1384>>2]=c[(c[h>>2]|0)+2316>>2]}a:do if((c[(c[h>>2]|0)+4160>>2]|0)==0?(c[(c[h>>2]|0)+4164>>2]|0)==0:0){c[m>>2]=0;while(1){if((c[m>>2]|0)>=(c[(c[h>>2]|0)+2340>>2]|0))break;f=(c[r>>2]|0)+1280+(c[m>>2]<<1)|0;b[f>>1]=(b[f>>1]|0)+((((b[(c[h>>2]|0)+2344+(c[m>>2]<<1)>>1]|0)-(b[(c[r>>2]|0)+1280+(c[m>>2]<<1)>>1]|0)>>16)*16348|0)+(((b[(c[h>>2]|0)+2344+(c[m>>2]<<1)>>1]|0)-(b[(c[r>>2]|0)+1280+(c[m>>2]<<1)>>1]|0)&65535)*16348>>16));c[m>>2]=(c[m>>2]|0)+1}c[p>>2]=0;c[n>>2]=0;c[m>>2]=0;while(1){if((c[m>>2]|0)>=(c[(c[h>>2]|0)+2324>>2]|0))break;if((c[(c[i>>2]|0)+16+(c[m>>2]<<2)>>2]|0)>(c[p>>2]|0)){c[p>>2]=c[(c[i>>2]|0)+16+(c[m>>2]<<2)>>2];c[n>>2]=c[m>>2]}c[m>>2]=(c[m>>2]|0)+1}Le((c[r>>2]|0)+(c[(c[h>>2]|0)+2332>>2]<<2)|0,c[r>>2]|0,(R((c[(c[h>>2]|0)+2324>>2]|0)-1|0,c[(c[h>>2]|0)+2332>>2]|0)|0)<<2|0)|0;f=(c[h>>2]|0)+4+((R(c[n>>2]|0,c[(c[h>>2]|0)+2332>>2]|0)|0)<<2)|0;Ie(c[r>>2]|0,f|0,c[(c[h>>2]|0)+2332>>2]<<2|0)|0;c[m>>2]=0;while(1){if((c[m>>2]|0)>=(c[(c[h>>2]|0)+2324>>2]|0))break a;f=(c[r>>2]|0)+1376|0;c[f>>2]=(c[f>>2]|0)+((((c[(c[i>>2]|0)+16+(c[m>>2]<<2)>>2]|0)-(c[(c[r>>2]|0)+1376>>2]|0)>>16)*4634|0)+(((c[(c[i>>2]|0)+16+(c[m>>2]<<2)>>2]|0)-(c[(c[r>>2]|0)+1376>>2]|0)&65535)*4634>>16));c[m>>2]=(c[m>>2]|0)+1}}while(0);if(!(c[(c[h>>2]|0)+4160>>2]|0)){He((c[r>>2]|0)+1312|0,0,c[(c[h>>2]|0)+2340>>2]<<2|0)|0;l=g;return}i=(c[k>>2]|0)+16|0;c[s>>2]=da()|0;n=l;l=l+((1*(i<<2)|0)+15&-16)|0;rc(n+64|0,c[r>>2]|0,c[(c[r>>2]|0)+1376>>2]|0,c[k>>2]|0,(c[r>>2]|0)+1380|0);sc(q,(c[r>>2]|0)+1280|0,c[(c[h>>2]|0)+2340>>2]|0);i=n;p=(c[r>>2]|0)+1312|0;f=i+64|0;do{c[i>>2]=c[p>>2];i=i+4|0;p=p+4|0}while((i|0)<(f|0));c[m>>2]=0;while(1){if((c[m>>2]|0)>=(c[k>>2]|0))break;c[o>>2]=c[(c[h>>2]|0)+2340>>2]>>1;e=R(c[n+(16+(c[m>>2]|0)-1<<2)>>2]>>16,b[q>>1]|0)|0;c[o>>2]=(c[o>>2]|0)+(e+((R(c[n+(16+(c[m>>2]|0)-1<<2)>>2]&65535,b[q>>1]|0)|0)>>16));e=R(c[n+(16+(c[m>>2]|0)-2<<2)>>2]>>16,b[q+2>>1]|0)|0;c[o>>2]=(c[o>>2]|0)+(e+((R(c[n+(16+(c[m>>2]|0)-2<<2)>>2]&65535,b[q+2>>1]|0)|0)>>16));e=R(c[n+(16+(c[m>>2]|0)-3<<2)>>2]>>16,b[q+4>>1]|0)|0;c[o>>2]=(c[o>>2]|0)+(e+((R(c[n+(16+(c[m>>2]|0)-3<<2)>>2]&65535,b[q+4>>1]|0)|0)>>16));e=R(c[n+(16+(c[m>>2]|0)-4<<2)>>2]>>16,b[q+6>>1]|0)|0;c[o>>2]=(c[o>>2]|0)+(e+((R(c[n+(16+(c[m>>2]|0)-4<<2)>>2]&65535,b[q+6>>1]|0)|0)>>16));e=R(c[n+(16+(c[m>>2]|0)-5<<2)>>2]>>16,b[q+8>>1]|0)|0;c[o>>2]=(c[o>>2]|0)+(e+((R(c[n+(16+(c[m>>2]|0)-5<<2)>>2]&65535,b[q+8>>1]|0)|0)>>16));e=R(c[n+(16+(c[m>>2]|0)-6<<2)>>2]>>16,b[q+10>>1]|0)|0;c[o>>2]=(c[o>>2]|0)+(e+((R(c[n+(16+(c[m>>2]|0)-6<<2)>>2]&65535,b[q+10>>1]|0)|0)>>16));e=R(c[n+(16+(c[m>>2]|0)-7<<2)>>2]>>16,b[q+12>>1]|0)|0;c[o>>2]=(c[o>>2]|0)+(e+((R(c[n+(16+(c[m>>2]|0)-7<<2)>>2]&65535,b[q+12>>1]|0)|0)>>16));e=R(c[n+(16+(c[m>>2]|0)-8<<2)>>2]>>16,b[q+14>>1]|0)|0;c[o>>2]=(c[o>>2]|0)+(e+((R(c[n+(16+(c[m>>2]|0)-8<<2)>>2]&65535,b[q+14>>1]|0)|0)>>16));e=R(c[n+(16+(c[m>>2]|0)-9<<2)>>2]>>16,b[q+16>>1]|0)|0;c[o>>2]=(c[o>>2]|0)+(e+((R(c[n+(16+(c[m>>2]|0)-9<<2)>>2]&65535,b[q+16>>1]|0)|0)>>16));e=R(c[n+(16+(c[m>>2]|0)-10<<2)>>2]>>16,b[q+18>>1]|0)|0;c[o>>2]=(c[o>>2]|0)+(e+((R(c[n+(16+(c[m>>2]|0)-10<<2)>>2]&65535,b[q+18>>1]|0)|0)>>16));if((c[(c[h>>2]|0)+2340>>2]|0)==16){e=R(c[n+(16+(c[m>>2]|0)-11<<2)>>2]>>16,b[q+20>>1]|0)|0;c[o>>2]=(c[o>>2]|0)+(e+((R(c[n+(16+(c[m>>2]|0)-11<<2)>>2]&65535,b[q+20>>1]|0)|0)>>16));e=R(c[n+(16+(c[m>>2]|0)-12<<2)>>2]>>16,b[q+22>>1]|0)|0;c[o>>2]=(c[o>>2]|0)+(e+((R(c[n+(16+(c[m>>2]|0)-12<<2)>>2]&65535,b[q+22>>1]|0)|0)>>16));e=R(c[n+(16+(c[m>>2]|0)-13<<2)>>2]>>16,b[q+24>>1]|0)|0;c[o>>2]=(c[o>>2]|0)+(e+((R(c[n+(16+(c[m>>2]|0)-13<<2)>>2]&65535,b[q+24>>1]|0)|0)>>16));e=R(c[n+(16+(c[m>>2]|0)-14<<2)>>2]>>16,b[q+26>>1]|0)|0;c[o>>2]=(c[o>>2]|0)+(e+((R(c[n+(16+(c[m>>2]|0)-14<<2)>>2]&65535,b[q+26>>1]|0)|0)>>16));e=R(c[n+(16+(c[m>>2]|0)-15<<2)>>2]>>16,b[q+28>>1]|0)|0;c[o>>2]=(c[o>>2]|0)+(e+((R(c[n+(16+(c[m>>2]|0)-15<<2)>>2]&65535,b[q+28>>1]|0)|0)>>16));e=R(c[n+(16+(c[m>>2]|0)-16<<2)>>2]>>16,b[q+30>>1]|0)|0;c[o>>2]=(c[o>>2]|0)+(e+((R(c[n+(16+(c[m>>2]|0)-16<<2)>>2]&65535,b[q+30>>1]|0)|0)>>16))}c[n+(16+(c[m>>2]|0)<<2)>>2]=(c[n+(16+(c[m>>2]|0)<<2)>>2]|0)+(c[o>>2]<<4);if(((b[(c[j>>2]|0)+(c[m>>2]<<1)>>1]|0)+((c[o>>2]>>5)+1>>1)|0)<=32767)if(((b[(c[j>>2]|0)+(c[m>>2]<<1)>>1]|0)+((c[o>>2]>>5)+1>>1)|0)<-32768)t=-32768;else t=(b[(c[j>>2]|0)+(c[m>>2]<<1)>>1]|0)+((c[o>>2]>>5)+1>>1)|0;else t=32767;b[(c[j>>2]|0)+(c[m>>2]<<1)>>1]=t;c[m>>2]=(c[m>>2]|0)+1}i=(c[r>>2]|0)+1312|0;p=n+(c[k>>2]<<2)|0;f=i+64|0;do{c[i>>2]=c[p>>2];i=i+4|0;p=p+4|0}while((i|0)<(f|0));ga(c[s>>2]|0);l=g;return}function rc(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;g=l;l=l+48|0;h=g+32|0;i=g+28|0;j=g+24|0;k=g+20|0;m=g+16|0;n=g+12|0;o=g+8|0;p=g+4|0;q=g;c[h>>2]=a;c[i>>2]=b;c[j>>2]=d;c[k>>2]=e;c[m>>2]=f;c[q>>2]=255;while(1){if((c[q>>2]|0)<=(c[k>>2]|0))break;c[q>>2]=c[q>>2]>>1}c[n>>2]=c[c[m>>2]>>2];c[o>>2]=0;while(1){r=c[n>>2]|0;if((c[o>>2]|0)>=(c[k>>2]|0))break;c[n>>2]=907633515+(R(r,196314165)|0);c[p>>2]=c[n>>2]>>24&c[q>>2];f=R(c[(c[i>>2]|0)+(c[p>>2]<<2)>>2]>>16,(c[j>>2]>>4&65535)<<16>>16)|0;e=f+((R(c[(c[i>>2]|0)+(c[p>>2]<<2)>>2]&65535,(c[j>>2]>>4&65535)<<16>>16)|0)>>16)|0;if((e+(R(c[(c[i>>2]|0)+(c[p>>2]<<2)>>2]|0,(c[j>>2]>>4>>15)+1>>1)|0)|0)<=32767){e=R(c[(c[i>>2]|0)+(c[p>>2]<<2)>>2]>>16,(c[j>>2]>>4&65535)<<16>>16)|0;f=e+((R(c[(c[i>>2]|0)+(c[p>>2]<<2)>>2]&65535,(c[j>>2]>>4&65535)<<16>>16)|0)>>16)|0;if((f+(R(c[(c[i>>2]|0)+(c[p>>2]<<2)>>2]|0,(c[j>>2]>>4>>15)+1>>1)|0)|0)<-32768)s=-32768;else{f=R(c[(c[i>>2]|0)+(c[p>>2]<<2)>>2]>>16,(c[j>>2]>>4&65535)<<16>>16)|0;e=f+((R(c[(c[i>>2]|0)+(c[p>>2]<<2)>>2]&65535,(c[j>>2]>>4&65535)<<16>>16)|0)>>16)|0;s=e+(R(c[(c[i>>2]|0)+(c[p>>2]<<2)>>2]|0,(c[j>>2]>>4>>15)+1>>1)|0)|0}}else s=32767;c[(c[h>>2]|0)+(c[o>>2]<<2)>>2]=(s&65535)<<16>>16;c[o>>2]=(c[o>>2]|0)+1}c[c[m>>2]>>2]=r;l=g;return}function sc(a,e,f){a=a|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0;g=l;l=l+272|0;h=g+264|0;i=g+260|0;j=g+256|0;k=g+252|0;m=g+248|0;n=g+244|0;o=g+240|0;p=g+176|0;q=g+140|0;r=g+104|0;s=g+100|0;t=g+96|0;u=g+92|0;v=g+88|0;w=g+84|0;x=g+80|0;y=g+16|0;z=g+12|0;A=g+8|0;B=g+4|0;C=g;c[h>>2]=a;c[i>>2]=e;c[j>>2]=f;c[B>>2]=0;c[k>>2]=(c[j>>2]|0)==16?25152:25168;c[m>>2]=0;while(1){if((c[m>>2]|0)>=(c[j>>2]|0))break;c[u>>2]=b[(c[i>>2]|0)+(c[m>>2]<<1)>>1]>>8;c[v>>2]=(b[(c[i>>2]|0)+(c[m>>2]<<1)>>1]|0)-(c[u>>2]<<8);c[w>>2]=b[17790+(c[u>>2]<<1)>>1];c[x>>2]=(b[17790+((c[u>>2]|0)+1<<1)>>1]|0)-(c[w>>2]|0);f=((c[w>>2]<<8)+(R(c[x>>2]|0,c[v>>2]|0)|0)>>3)+1>>1;c[p+(d[(c[k>>2]|0)+(c[m>>2]|0)>>0]<<2)>>2]=f;c[m>>2]=(c[m>>2]|0)+1}c[o>>2]=c[j>>2]>>1;tc(q,p,c[o>>2]|0);tc(r,p+4|0,c[o>>2]|0);c[m>>2]=0;while(1){if((c[m>>2]|0)>=(c[o>>2]|0))break;c[s>>2]=(c[q+((c[m>>2]|0)+1<<2)>>2]|0)+(c[q+(c[m>>2]<<2)>>2]|0);c[t>>2]=(c[r+((c[m>>2]|0)+1<<2)>>2]|0)-(c[r+(c[m>>2]<<2)>>2]|0);c[y+(c[m>>2]<<2)>>2]=0-(c[t>>2]|0)-(c[s>>2]|0);c[y+((c[j>>2]|0)-(c[m>>2]|0)-1<<2)>>2]=(c[t>>2]|0)-(c[s>>2]|0);c[m>>2]=(c[m>>2]|0)+1}c[n>>2]=0;while(1){if((c[n>>2]|0)>=10)break;c[z>>2]=0;c[m>>2]=0;while(1){if((c[m>>2]|0)>=(c[j>>2]|0))break;s=c[y+(c[m>>2]<<2)>>2]|0;c[A>>2]=(c[y+(c[m>>2]<<2)>>2]|0)>0?s:0-s|0;if((c[A>>2]|0)>(c[z>>2]|0)){c[z>>2]=c[A>>2];c[B>>2]=c[m>>2]}c[m>>2]=(c[m>>2]|0)+1}c[z>>2]=(c[z>>2]>>4)+1>>1;if((c[z>>2]|0)<=32767)break;c[z>>2]=(c[z>>2]|0)<163838?c[z>>2]|0:163838;c[C>>2]=65470-(((c[z>>2]|0)-32767<<14|0)/((R(c[z>>2]|0,(c[B>>2]|0)+1|0)|0)>>2|0)|0);uc(y,c[j>>2]|0,c[C>>2]|0);c[n>>2]=(c[n>>2]|0)+1}C=(c[n>>2]|0)==10;c[m>>2]=0;a:do if(C)while(1){if((c[m>>2]|0)>=(c[j>>2]|0))break a;if(((c[y+(c[m>>2]<<2)>>2]>>4)+1>>1|0)<=32767)if(((c[y+(c[m>>2]<<2)>>2]>>4)+1>>1|0)<-32768)D=-32768;else D=(c[y+(c[m>>2]<<2)>>2]>>4)+1>>1;else D=32767;b[(c[h>>2]|0)+(c[m>>2]<<1)>>1]=D;c[y+(c[m>>2]<<2)>>2]=b[(c[h>>2]|0)+(c[m>>2]<<1)>>1]<<5;c[m>>2]=(c[m>>2]|0)+1}else while(1){if((c[m>>2]|0)>=(c[j>>2]|0))break a;b[(c[h>>2]|0)+(c[m>>2]<<1)>>1]=(c[y+(c[m>>2]<<2)>>2]>>4)+1>>1;c[m>>2]=(c[m>>2]|0)+1}while(0);c[n>>2]=0;while(1){if((c[n>>2]|0)>=16){E=31;break}if((vc(c[h>>2]|0,c[j>>2]|0)|0)>=107374){E=31;break}uc(y,c[j>>2]|0,65536-(2<<c[n>>2])|0);c[m>>2]=0;while(1){if((c[m>>2]|0)>=(c[j>>2]|0))break;b[(c[h>>2]|0)+(c[m>>2]<<1)>>1]=(c[y+(c[m>>2]<<2)>>2]>>4)+1>>1;c[m>>2]=(c[m>>2]|0)+1}c[n>>2]=(c[n>>2]|0)+1}if((E|0)==31){l=g;return}}function tc(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,m=0;e=l;l=l+32|0;f=e+20|0;g=e+16|0;h=e+12|0;i=e+8|0;j=e+4|0;k=e;c[f>>2]=a;c[g>>2]=b;c[h>>2]=d;c[c[f>>2]>>2]=65536;c[(c[f>>2]|0)+4>>2]=0-(c[c[g>>2]>>2]|0);c[i>>2]=1;while(1){if((c[i>>2]|0)>=(c[h>>2]|0))break;c[k>>2]=c[(c[g>>2]|0)+(c[i>>2]<<1<<2)>>2];d=c[(c[f>>2]|0)+((c[i>>2]|0)-1<<2)>>2]<<1;b=c[k>>2]|0;a=c[(c[f>>2]|0)+(c[i>>2]<<2)>>2]|0;m=Ke(b|0,((b|0)<0)<<31>>31|0,a|0,((a|0)<0)<<31>>31|0)|0;a=Fe(m|0,C|0,15)|0;m=Ge(a|0,C|0,1,0)|0;a=Fe(m|0,C|0,1)|0;c[(c[f>>2]|0)+((c[i>>2]|0)+1<<2)>>2]=d-a;c[j>>2]=c[i>>2];while(1){if((c[j>>2]|0)<=1)break;a=c[(c[f>>2]|0)+((c[j>>2]|0)-2<<2)>>2]|0;d=c[k>>2]|0;m=c[(c[f>>2]|0)+((c[j>>2]|0)-1<<2)>>2]|0;b=Ke(d|0,((d|0)<0)<<31>>31|0,m|0,((m|0)<0)<<31>>31|0)|0;m=Fe(b|0,C|0,15)|0;b=Ge(m|0,C|0,1,0)|0;m=Fe(b|0,C|0,1)|0;b=(c[f>>2]|0)+(c[j>>2]<<2)|0;c[b>>2]=(c[b>>2]|0)+(a-m);c[j>>2]=(c[j>>2]|0)+-1}m=(c[f>>2]|0)+4|0;c[m>>2]=(c[m>>2]|0)-(c[k>>2]|0);c[i>>2]=(c[i>>2]|0)+1}l=e;return}function uc(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,m=0;e=l;l=l+32|0;f=e+16|0;g=e+12|0;h=e+8|0;i=e+4|0;j=e;c[f>>2]=a;c[g>>2]=b;c[h>>2]=d;c[j>>2]=(c[h>>2]|0)-65536;c[i>>2]=0;while(1){k=c[h>>2]>>16;m=c[f>>2]|0;if((c[i>>2]|0)>=((c[g>>2]|0)-1|0))break;d=R(k,(c[m+(c[i>>2]<<2)>>2]&65535)<<16>>16)|0;b=d+((R(c[h>>2]&65535,(c[(c[f>>2]|0)+(c[i>>2]<<2)>>2]&65535)<<16>>16)|0)>>16)|0;d=b+(R(c[h>>2]|0,(c[(c[f>>2]|0)+(c[i>>2]<<2)>>2]>>15)+1>>1)|0)|0;c[(c[f>>2]|0)+(c[i>>2]<<2)>>2]=d;d=((R(c[h>>2]|0,c[j>>2]|0)|0)>>15)+1>>1;c[h>>2]=(c[h>>2]|0)+d;c[i>>2]=(c[i>>2]|0)+1}i=R(k,(c[m+((c[g>>2]|0)-1<<2)>>2]&65535)<<16>>16)|0;m=i+((R(c[h>>2]&65535,(c[(c[f>>2]|0)+((c[g>>2]|0)-1<<2)>>2]&65535)<<16>>16)|0)>>16)|0;i=m+(R(c[h>>2]|0,(c[(c[f>>2]|0)+((c[g>>2]|0)-1<<2)>>2]>>15)+1>>1)|0)|0;c[(c[f>>2]|0)+((c[g>>2]|0)-1<<2)>>2]=i;l=e;return}function vc(a,d){a=a|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0;e=l;l=l+160|0;f=e+148|0;g=e+144|0;h=e+140|0;i=e+136|0;j=e+8|0;k=e+4|0;m=e;c[g>>2]=a;c[h>>2]=d;c[m>>2]=0;c[k>>2]=j+((c[h>>2]&1)<<6);c[i>>2]=0;while(1){if((c[i>>2]|0)>=(c[h>>2]|0))break;c[m>>2]=(c[m>>2]|0)+(b[(c[g>>2]|0)+(c[i>>2]<<1)>>1]|0);c[(c[k>>2]|0)+(c[i>>2]<<2)>>2]=b[(c[g>>2]|0)+(c[i>>2]<<1)>>1]<<12;c[i>>2]=(c[i>>2]|0)+1}if((c[m>>2]|0)>=4096){c[f>>2]=0;n=c[f>>2]|0;l=e;return n|0}else{c[f>>2]=wc(j,c[h>>2]|0)|0;n=c[f>>2]|0;l=e;return n|0}return 0}function wc(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0;d=l;l=l+64|0;e=d+48|0;f=d+44|0;g=d+40|0;h=d+36|0;i=d+32|0;j=d+28|0;k=d+24|0;m=d+20|0;n=d+16|0;o=d+12|0;p=d+8|0;q=d+4|0;r=d;c[f>>2]=a;c[g>>2]=b;c[r>>2]=(c[f>>2]|0)+((c[g>>2]&1)<<6);c[k>>2]=1073741824;c[h>>2]=(c[g>>2]|0)-1;while(1){s=c[r>>2]|0;if((c[h>>2]|0)<=0)break;if((c[s+(c[h>>2]<<2)>>2]|0)>16773022){t=5;break}if((c[(c[r>>2]|0)+(c[h>>2]<<2)>>2]|0)<-16773022){t=5;break}c[m>>2]=0-(c[(c[r>>2]|0)+(c[h>>2]<<2)>>2]<<7);g=c[m>>2]|0;b=c[m>>2]|0;a=Ke(g|0,((g|0)<0)<<31>>31|0,b|0,((b|0)<0)<<31>>31|0)|0;b=Fe(a|0,C|0,32)|0;c[n>>2]=1073741824-b;b=c[n>>2]|0;c[j>>2]=32-(xc((c[n>>2]|0)>0?b:0-b|0)|0);c[o>>2]=yc(c[n>>2]|0,(c[j>>2]|0)+30|0)|0;b=c[k>>2]|0;a=c[n>>2]|0;g=Ke(b|0,((b|0)<0)<<31>>31|0,a|0,((a|0)<0)<<31>>31|0)|0;a=Fe(g|0,C|0,32)|0;c[k>>2]=a<<2;c[q>>2]=c[r>>2];c[r>>2]=(c[f>>2]|0)+((c[h>>2]&1)<<6);c[i>>2]=0;while(1){if((c[i>>2]|0)>=(c[h>>2]|0))break;a=c[(c[q>>2]|0)+(c[i>>2]<<2)>>2]|0;g=c[(c[q>>2]|0)+((c[h>>2]|0)-(c[i>>2]|0)-1<<2)>>2]|0;b=c[m>>2]|0;u=Ke(g|0,((g|0)<0)<<31>>31|0,b|0,((b|0)<0)<<31>>31|0)|0;b=Fe(u|0,C|0,30)|0;u=Ge(b|0,C|0,1,0)|0;b=Fe(u|0,C|0,1)|0;c[p>>2]=a-b;b=(c[j>>2]|0)==1;a=c[p>>2]|0;u=c[o>>2]|0;g=Ke(a|0,((a|0)<0)<<31>>31|0,u|0,((u|0)<0)<<31>>31|0)|0;u=C;if(b){b=Fe(g|0,u|0,1)|0;a=C;v=c[p>>2]|0;w=c[o>>2]|0;x=Ke(v|0,((v|0)<0)<<31>>31|0,w|0,((w|0)<0)<<31>>31|0)|0;w=Ge(b|0,a|0,x&1|0,0)|0;y=C;z=w}else{w=Fe(g|0,u|0,(c[j>>2]|0)-1|0)|0;u=Ge(w|0,C|0,1,0)|0;w=Fe(u|0,C|0,1)|0;y=C;z=w}c[(c[r>>2]|0)+(c[i>>2]<<2)>>2]=z;c[i>>2]=(c[i>>2]|0)+1}c[h>>2]=(c[h>>2]|0)+-1}if((t|0)==5){c[e>>2]=0;A=c[e>>2]|0;l=d;return A|0}if((c[s>>2]|0)<=16773022?(c[c[r>>2]>>2]|0)>=-16773022:0){c[m>>2]=0-(c[c[r>>2]>>2]<<7);r=c[m>>2]|0;s=c[m>>2]|0;m=Ke(r|0,((r|0)<0)<<31>>31|0,s|0,((s|0)<0)<<31>>31|0)|0;s=Fe(m|0,C|0,32)|0;c[n>>2]=1073741824-s;s=c[k>>2]|0;m=c[n>>2]|0;n=Ke(s|0,((s|0)<0)<<31>>31|0,m|0,((m|0)<0)<<31>>31|0)|0;m=Fe(n|0,C|0,32)|0;c[k>>2]=m<<2;c[e>>2]=c[k>>2];A=c[e>>2]|0;l=d;return A|0}c[e>>2]=0;A=c[e>>2]|0;l=d;return A|0}function xc(a){a=a|0;var b=0,d=0,e=0;b=l;l=l+16|0;d=b;c[d>>2]=a;if(!(c[d>>2]|0)){e=32;l=b;return e|0}e=32-(32-(U(c[d>>2]|0)|0))|0;l=b;return e|0}function yc(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0;d=l;l=l+48|0;e=d+32|0;f=d+28|0;g=d+24|0;h=d+20|0;i=d+16|0;j=d+12|0;k=d+8|0;m=d+4|0;n=d;c[f>>2]=a;c[g>>2]=b;b=c[f>>2]|0;c[h>>2]=(xc((c[f>>2]|0)>0?b:0-b|0)|0)-1;c[k>>2]=c[f>>2]<<c[h>>2];c[j>>2]=536870911/(c[k>>2]>>16|0)|0;c[n>>2]=c[j>>2]<<16;f=R(c[k>>2]>>16,(c[j>>2]&65535)<<16>>16)|0;c[m>>2]=536870912-(f+((R(c[k>>2]&65535,(c[j>>2]&65535)<<16>>16)|0)>>16))<<3;k=R(c[m>>2]>>16,(c[j>>2]&65535)<<16>>16)|0;f=(c[n>>2]|0)+(k+((R(c[m>>2]&65535,(c[j>>2]&65535)<<16>>16)|0)>>16))|0;c[n>>2]=f+(R(c[m>>2]|0,(c[j>>2]>>15)+1>>1)|0);c[i>>2]=61-(c[h>>2]|0)-(c[g>>2]|0);g=c[i>>2]|0;if((c[i>>2]|0)>0)if((g|0)<32){c[e>>2]=c[n>>2]>>c[i>>2];o=c[e>>2]|0;l=d;return o|0}else{c[e>>2]=0;o=c[e>>2]|0;l=d;return o|0}h=c[n>>2]|0;j=0-(c[i>>2]|0)|0;do if((-2147483648>>0-g|0)>(2147483647>>0-(c[i>>2]|0)|0)){if((h|0)>(-2147483648>>j|0)){p=-2147483648>>0-(c[i>>2]|0);break}if((c[n>>2]|0)<(2147483647>>0-(c[i>>2]|0)|0)){p=2147483647>>0-(c[i>>2]|0);break}else{p=c[n>>2]|0;break}}else{if((h|0)>(2147483647>>j|0)){p=2147483647>>0-(c[i>>2]|0);break}if((c[n>>2]|0)<(-2147483648>>0-(c[i>>2]|0)|0)){p=-2147483648>>0-(c[i>>2]|0);break}else{p=c[n>>2]|0;break}}while(0);c[e>>2]=p<<0-(c[i>>2]|0);o=c[e>>2]|0;l=d;return o|0}function zc(d,e,f,g,h,i){d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;var j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0;j=l;l=l+48|0;k=j+40|0;m=j+36|0;n=j+32|0;o=j+28|0;p=j+24|0;q=j+20|0;r=j+16|0;s=j+12|0;t=j+8|0;u=j+44|0;v=j+4|0;w=j;c[k>>2]=d;c[m>>2]=e;c[n>>2]=f;c[o>>2]=g;c[p>>2]=h;c[q>>2]=i;a[u+1>>0]=0;c[v>>2]=c[m>>2];c[r>>2]=(((c[p>>2]|0)+(c[o>>2]<<1)&65535)<<16>>16)*7;c[w>>2]=23696+(c[r>>2]|0);c[n>>2]=(c[n>>2]|0)+8>>4;c[r>>2]=0;while(1){if((c[r>>2]|0)>=(c[n>>2]|0))break;c[t>>2]=c[(c[q>>2]|0)+(c[r>>2]<<2)>>2];a:do if((c[t>>2]|0)>0){a[u>>0]=a[(c[w>>2]|0)+((c[t>>2]&31|0)<6?c[t>>2]&31:6)>>0]|0;c[s>>2]=0;while(1){if((c[s>>2]|0)>=16)break a;if((b[(c[v>>2]|0)+(c[s>>2]<<1)>>1]|0)>0){o=((bc(c[k>>2]|0,u,8)|0)<<1)-1|0;p=(c[v>>2]|0)+(c[s>>2]<<1)|0;b[p>>1]=R(b[p>>1]|0,o)|0}c[s>>2]=(c[s>>2]|0)+1}}while(0);c[v>>2]=(c[v>>2]|0)+32;c[r>>2]=(c[r>>2]|0)+1}l=j;return}function Ac(a){a=a|0;var b=0,d=0;b=l;l=l+16|0;d=b;c[d>>2]=a;He(c[d>>2]|0,0,4260)|0;c[(c[d>>2]|0)+2376>>2]=1;c[c[d>>2]>>2]=65536;pc(c[d>>2]|0);Bc(c[d>>2]|0);l=b;return 0}function Bc(a){a=a|0;var b=0,d=0;b=l;l=l+16|0;d=b;c[d>>2]=a;c[(c[d>>2]|0)+4168>>2]=c[(c[d>>2]|0)+2328>>2]<<7;c[(c[d>>2]|0)+4168+72>>2]=65536;c[(c[d>>2]|0)+4168+72+4>>2]=65536;c[(c[d>>2]|0)+4168+88>>2]=20;c[(c[d>>2]|0)+4168+84>>2]=2;l=b;return}function Cc(d,e,f,g){d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0;h=l;l=l+144|0;i=h+96|0;j=h+92|0;k=h+88|0;m=h+84|0;n=h+80|0;o=h+76|0;p=h+72|0;q=h+68|0;r=h+64|0;s=h+60|0;t=h+56|0;u=h+52|0;v=h+48|0;w=h+44|0;x=h+104|0;y=h+40|0;z=h+36|0;A=h+32|0;B=h+28|0;C=h+24|0;D=h+20|0;E=h+16|0;F=h+12|0;G=h+8|0;H=h+4|0;I=h;c[i>>2]=d;c[j>>2]=e;c[k>>2]=f;c[m>>2]=g;c[p>>2]=0;g=c[(c[i>>2]|0)+2336>>2]|0;c[I>>2]=da()|0;f=l;l=l+((1*(g<<1)|0)+15&-16)|0;g=l;l=l+((1*((c[(c[i>>2]|0)+2336>>2]|0)+(c[(c[i>>2]|0)+2328>>2]|0)<<2)|0)+15&-16)|0;e=l;l=l+((1*(c[(c[i>>2]|0)+2332>>2]<<2)|0)+15&-16)|0;d=l;l=l+((1*((c[(c[i>>2]|0)+2332>>2]|0)+16<<2)|0)+15&-16)|0;c[E>>2]=b[17776+(a[(c[i>>2]|0)+2736+29>>0]>>1<<2)+(a[(c[i>>2]|0)+2736+30>>0]<<1)>>1];if((a[(c[i>>2]|0)+2736+31>>0]|0)<4)c[s>>2]=1;else c[s>>2]=0;c[D>>2]=a[(c[i>>2]|0)+2736+34>>0];c[n>>2]=0;while(1){if((c[n>>2]|0)>=(c[(c[i>>2]|0)+2328>>2]|0))break;c[D>>2]=907633515+(R(c[D>>2]|0,196314165)|0);c[(c[i>>2]|0)+4+(c[n>>2]<<2)>>2]=b[(c[m>>2]|0)+(c[n>>2]<<1)>>1]<<14;J=(c[i>>2]|0)+4+(c[n>>2]<<2)|0;K=c[J>>2]|0;if((c[(c[i>>2]|0)+4+(c[n>>2]<<2)>>2]|0)<=0){if((K|0)<0){L=(c[i>>2]|0)+4+(c[n>>2]<<2)|0;c[L>>2]=(c[L>>2]|0)+1280}}else c[J>>2]=K-1280;K=(c[i>>2]|0)+4+(c[n>>2]<<2)|0;c[K>>2]=(c[K>>2]|0)+(c[E>>2]<<4);if((c[D>>2]|0)<0)c[(c[i>>2]|0)+4+(c[n>>2]<<2)>>2]=0-(c[(c[i>>2]|0)+4+(c[n>>2]<<2)>>2]|0);c[D>>2]=(c[D>>2]|0)+(b[(c[m>>2]|0)+(c[n>>2]<<1)>>1]|0);c[n>>2]=(c[n>>2]|0)+1}m=d;D=(c[i>>2]|0)+1284|0;E=m+64|0;do{c[m>>2]=c[D>>2];m=m+4|0;D=D+4|0}while((m|0)<(E|0));c[G>>2]=(c[i>>2]|0)+4;c[w>>2]=c[k>>2];c[r>>2]=c[(c[i>>2]|0)+2336>>2];c[o>>2]=0;while(1){if((c[o>>2]|0)>=(c[(c[i>>2]|0)+2324>>2]|0))break;c[H>>2]=e;c[u>>2]=(c[j>>2]|0)+32+(c[o>>2]>>1<<5);Ie(x|0,c[u>>2]|0,c[(c[i>>2]|0)+2340>>2]<<1|0)|0;c[v>>2]=(c[j>>2]|0)+96+((c[o>>2]|0)*5<<1);c[t>>2]=a[(c[i>>2]|0)+2736+29>>0];c[A>>2]=c[(c[j>>2]|0)+16+(c[o>>2]<<2)>>2]>>6;c[B>>2]=Dc(c[(c[j>>2]|0)+16+(c[o>>2]<<2)>>2]|0,47)|0;a:do if((c[(c[j>>2]|0)+16+(c[o>>2]<<2)>>2]|0)!=(c[c[i>>2]>>2]|0)){c[C>>2]=Ec(c[c[i>>2]>>2]|0,c[(c[j>>2]|0)+16+(c[o>>2]<<2)>>2]|0,16)|0;c[n>>2]=0;while(1){if((c[n>>2]|0)>=16)break a;K=R(c[C>>2]>>16,(c[d+(c[n>>2]<<2)>>2]&65535)<<16>>16)|0;J=K+((R(c[C>>2]&65535,(c[d+(c[n>>2]<<2)>>2]&65535)<<16>>16)|0)>>16)|0;K=J+(R(c[C>>2]|0,(c[d+(c[n>>2]<<2)>>2]>>15)+1>>1)|0)|0;c[d+(c[n>>2]<<2)>>2]=K;c[n>>2]=(c[n>>2]|0)+1}}else c[C>>2]=65536;while(0);c[c[i>>2]>>2]=c[(c[j>>2]|0)+16+(c[o>>2]<<2)>>2];if((c[(c[i>>2]|0)+4160>>2]|0?(c[(c[i>>2]|0)+4164>>2]|0)==2:0)?((c[o>>2]|0)<2?(a[(c[i>>2]|0)+2736+29>>0]|0)!=2:0):0){K=c[v>>2]|0;b[K>>1]=0;b[K+2>>1]=0;b[K+4>>1]=0;b[K+6>>1]=0;b[K+8>>1]=0;b[(c[v>>2]|0)+4>>1]=4096;c[t>>2]=2;c[(c[j>>2]|0)+(c[o>>2]<<2)>>2]=c[(c[i>>2]|0)+2308>>2]}b:do if((c[t>>2]|0)==2){c[p>>2]=c[(c[j>>2]|0)+(c[o>>2]<<2)>>2];if(c[o>>2]|0?!((c[o>>2]|0)==2&(c[s>>2]|0)!=0):0){if((c[C>>2]|0)==65536)break;c[n>>2]=0;while(1){if((c[n>>2]|0)>=((c[p>>2]|0)+2|0))break b;K=R(c[C>>2]>>16,(c[g+((c[r>>2]|0)-(c[n>>2]|0)-1<<2)>>2]&65535)<<16>>16)|0;J=K+((R(c[C>>2]&65535,(c[g+((c[r>>2]|0)-(c[n>>2]|0)-1<<2)>>2]&65535)<<16>>16)|0)>>16)|0;K=J+(R(c[C>>2]|0,(c[g+((c[r>>2]|0)-(c[n>>2]|0)-1<<2)>>2]>>15)+1>>1)|0)|0;c[g+((c[r>>2]|0)-(c[n>>2]|0)-1<<2)>>2]=K;c[n>>2]=(c[n>>2]|0)+1}}c[q>>2]=(c[(c[i>>2]|0)+2336>>2]|0)-(c[p>>2]|0)-(c[(c[i>>2]|0)+2340>>2]|0)-2;if((c[o>>2]|0)==2)Ie((c[i>>2]|0)+1348+(c[(c[i>>2]|0)+2336>>2]<<1)|0,c[k>>2]|0,c[(c[i>>2]|0)+2332>>2]<<1<<1|0)|0;K=(c[i>>2]|0)+1348+((c[q>>2]|0)+(R(c[o>>2]|0,c[(c[i>>2]|0)+2332>>2]|0)|0)<<1)|0;Fc(f+(c[q>>2]<<1)|0,K,c[u>>2]|0,(c[(c[i>>2]|0)+2336>>2]|0)-(c[q>>2]|0)|0,c[(c[i>>2]|0)+2340>>2]|0);if(!(c[o>>2]|0)){K=R(c[B>>2]>>16,(c[(c[j>>2]|0)+136>>2]&65535)<<16>>16)|0;c[B>>2]=K+((R(c[B>>2]&65535,(c[(c[j>>2]|0)+136>>2]&65535)<<16>>16)|0)>>16)<<2}c[n>>2]=0;while(1){if((c[n>>2]|0)>=((c[p>>2]|0)+2|0))break b;K=R(c[B>>2]>>16,b[f+((c[(c[i>>2]|0)+2336>>2]|0)-(c[n>>2]|0)-1<<1)>>1]|0)|0;J=K+((R(c[B>>2]&65535,b[f+((c[(c[i>>2]|0)+2336>>2]|0)-(c[n>>2]|0)-1<<1)>>1]|0)|0)>>16)|0;c[g+((c[r>>2]|0)-(c[n>>2]|0)-1<<2)>>2]=J;c[n>>2]=(c[n>>2]|0)+1}}while(0);c:do if((c[t>>2]|0)==2){c[F>>2]=g+((c[r>>2]|0)-(c[p>>2]|0)+2<<2);c[n>>2]=0;while(1){if((c[n>>2]|0)>=(c[(c[i>>2]|0)+2332>>2]|0))break c;c[y>>2]=2;J=R(c[c[F>>2]>>2]>>16,b[c[v>>2]>>1]|0)|0;c[y>>2]=(c[y>>2]|0)+(J+((R(c[c[F>>2]>>2]&65535,b[c[v>>2]>>1]|0)|0)>>16));J=R(c[(c[F>>2]|0)+-4>>2]>>16,b[(c[v>>2]|0)+2>>1]|0)|0;c[y>>2]=(c[y>>2]|0)+(J+((R(c[(c[F>>2]|0)+-4>>2]&65535,b[(c[v>>2]|0)+2>>1]|0)|0)>>16));J=R(c[(c[F>>2]|0)+-8>>2]>>16,b[(c[v>>2]|0)+4>>1]|0)|0;c[y>>2]=(c[y>>2]|0)+(J+((R(c[(c[F>>2]|0)+-8>>2]&65535,b[(c[v>>2]|0)+4>>1]|0)|0)>>16));J=R(c[(c[F>>2]|0)+-12>>2]>>16,b[(c[v>>2]|0)+6>>1]|0)|0;c[y>>2]=(c[y>>2]|0)+(J+((R(c[(c[F>>2]|0)+-12>>2]&65535,b[(c[v>>2]|0)+6>>1]|0)|0)>>16));J=R(c[(c[F>>2]|0)+-16>>2]>>16,b[(c[v>>2]|0)+8>>1]|0)|0;c[y>>2]=(c[y>>2]|0)+(J+((R(c[(c[F>>2]|0)+-16>>2]&65535,b[(c[v>>2]|0)+8>>1]|0)|0)>>16));c[F>>2]=(c[F>>2]|0)+4;c[(c[H>>2]|0)+(c[n>>2]<<2)>>2]=(c[(c[G>>2]|0)+(c[n>>2]<<2)>>2]|0)+(c[y>>2]<<1);c[g+(c[r>>2]<<2)>>2]=c[(c[H>>2]|0)+(c[n>>2]<<2)>>2]<<1;c[r>>2]=(c[r>>2]|0)+1;c[n>>2]=(c[n>>2]|0)+1}}else c[H>>2]=c[G>>2];while(0);c[n>>2]=0;while(1){if((c[n>>2]|0)>=(c[(c[i>>2]|0)+2332>>2]|0))break;c[z>>2]=c[(c[i>>2]|0)+2340>>2]>>1;J=R(c[d+(16+(c[n>>2]|0)-1<<2)>>2]>>16,b[x>>1]|0)|0;c[z>>2]=(c[z>>2]|0)+(J+((R(c[d+(16+(c[n>>2]|0)-1<<2)>>2]&65535,b[x>>1]|0)|0)>>16));J=R(c[d+(16+(c[n>>2]|0)-2<<2)>>2]>>16,b[x+2>>1]|0)|0;c[z>>2]=(c[z>>2]|0)+(J+((R(c[d+(16+(c[n>>2]|0)-2<<2)>>2]&65535,b[x+2>>1]|0)|0)>>16));J=R(c[d+(16+(c[n>>2]|0)-3<<2)>>2]>>16,b[x+4>>1]|0)|0;c[z>>2]=(c[z>>2]|0)+(J+((R(c[d+(16+(c[n>>2]|0)-3<<2)>>2]&65535,b[x+4>>1]|0)|0)>>16));J=R(c[d+(16+(c[n>>2]|0)-4<<2)>>2]>>16,b[x+6>>1]|0)|0;c[z>>2]=(c[z>>2]|0)+(J+((R(c[d+(16+(c[n>>2]|0)-4<<2)>>2]&65535,b[x+6>>1]|0)|0)>>16));J=R(c[d+(16+(c[n>>2]|0)-5<<2)>>2]>>16,b[x+8>>1]|0)|0;c[z>>2]=(c[z>>2]|0)+(J+((R(c[d+(16+(c[n>>2]|0)-5<<2)>>2]&65535,b[x+8>>1]|0)|0)>>16));J=R(c[d+(16+(c[n>>2]|0)-6<<2)>>2]>>16,b[x+10>>1]|0)|0;c[z>>2]=(c[z>>2]|0)+(J+((R(c[d+(16+(c[n>>2]|0)-6<<2)>>2]&65535,b[x+10>>1]|0)|0)>>16));J=R(c[d+(16+(c[n>>2]|0)-7<<2)>>2]>>16,b[x+12>>1]|0)|0;c[z>>2]=(c[z>>2]|0)+(J+((R(c[d+(16+(c[n>>2]|0)-7<<2)>>2]&65535,b[x+12>>1]|0)|0)>>16));J=R(c[d+(16+(c[n>>2]|0)-8<<2)>>2]>>16,b[x+14>>1]|0)|0;c[z>>2]=(c[z>>2]|0)+(J+((R(c[d+(16+(c[n>>2]|0)-8<<2)>>2]&65535,b[x+14>>1]|0)|0)>>16));J=R(c[d+(16+(c[n>>2]|0)-9<<2)>>2]>>16,b[x+16>>1]|0)|0;c[z>>2]=(c[z>>2]|0)+(J+((R(c[d+(16+(c[n>>2]|0)-9<<2)>>2]&65535,b[x+16>>1]|0)|0)>>16));J=R(c[d+(16+(c[n>>2]|0)-10<<2)>>2]>>16,b[x+18>>1]|0)|0;c[z>>2]=(c[z>>2]|0)+(J+((R(c[d+(16+(c[n>>2]|0)-10<<2)>>2]&65535,b[x+18>>1]|0)|0)>>16));if((c[(c[i>>2]|0)+2340>>2]|0)==16){J=R(c[d+(16+(c[n>>2]|0)-11<<2)>>2]>>16,b[x+20>>1]|0)|0;c[z>>2]=(c[z>>2]|0)+(J+((R(c[d+(16+(c[n>>2]|0)-11<<2)>>2]&65535,b[x+20>>1]|0)|0)>>16));J=R(c[d+(16+(c[n>>2]|0)-12<<2)>>2]>>16,b[x+22>>1]|0)|0;c[z>>2]=(c[z>>2]|0)+(J+((R(c[d+(16+(c[n>>2]|0)-12<<2)>>2]&65535,b[x+22>>1]|0)|0)>>16));J=R(c[d+(16+(c[n>>2]|0)-13<<2)>>2]>>16,b[x+24>>1]|0)|0;c[z>>2]=(c[z>>2]|0)+(J+((R(c[d+(16+(c[n>>2]|0)-13<<2)>>2]&65535,b[x+24>>1]|0)|0)>>16));J=R(c[d+(16+(c[n>>2]|0)-14<<2)>>2]>>16,b[x+26>>1]|0)|0;c[z>>2]=(c[z>>2]|0)+(J+((R(c[d+(16+(c[n>>2]|0)-14<<2)>>2]&65535,b[x+26>>1]|0)|0)>>16));J=R(c[d+(16+(c[n>>2]|0)-15<<2)>>2]>>16,b[x+28>>1]|0)|0;c[z>>2]=(c[z>>2]|0)+(J+((R(c[d+(16+(c[n>>2]|0)-15<<2)>>2]&65535,b[x+28>>1]|0)|0)>>16));J=R(c[d+(16+(c[n>>2]|0)-16<<2)>>2]>>16,b[x+30>>1]|0)|0;c[z>>2]=(c[z>>2]|0)+(J+((R(c[d+(16+(c[n>>2]|0)-16<<2)>>2]&65535,b[x+30>>1]|0)|0)>>16))}c[d+(16+(c[n>>2]|0)<<2)>>2]=(c[(c[H>>2]|0)+(c[n>>2]<<2)>>2]|0)+(c[z>>2]<<4);J=R(c[d+(16+(c[n>>2]|0)<<2)>>2]>>16,(c[A>>2]&65535)<<16>>16)|0;K=J+((R(c[d+(16+(c[n>>2]|0)<<2)>>2]&65535,(c[A>>2]&65535)<<16>>16)|0)>>16)|0;if(((K+(R(c[d+(16+(c[n>>2]|0)<<2)>>2]|0,(c[A>>2]>>15)+1>>1)|0)>>7)+1>>1|0)<=32767){K=R(c[d+(16+(c[n>>2]|0)<<2)>>2]>>16,(c[A>>2]&65535)<<16>>16)|0;J=K+((R(c[d+(16+(c[n>>2]|0)<<2)>>2]&65535,(c[A>>2]&65535)<<16>>16)|0)>>16)|0;if(((J+(R(c[d+(16+(c[n>>2]|0)<<2)>>2]|0,(c[A>>2]>>15)+1>>1)|0)>>7)+1>>1|0)<-32768)M=-32768;else{J=R(c[d+(16+(c[n>>2]|0)<<2)>>2]>>16,(c[A>>2]&65535)<<16>>16)|0;K=J+((R(c[d+(16+(c[n>>2]|0)<<2)>>2]&65535,(c[A>>2]&65535)<<16>>16)|0)>>16)|0;M=(K+(R(c[d+(16+(c[n>>2]|0)<<2)>>2]|0,(c[A>>2]>>15)+1>>1)|0)>>7)+1>>1}}else M=32767;b[(c[w>>2]|0)+(c[n>>2]<<1)>>1]=M;c[n>>2]=(c[n>>2]|0)+1}m=d;D=d+(c[(c[i>>2]|0)+2332>>2]<<2)|0;E=m+64|0;do{c[m>>2]=c[D>>2];m=m+4|0;D=D+4|0}while((m|0)<(E|0));c[G>>2]=(c[G>>2]|0)+(c[(c[i>>2]|0)+2332>>2]<<2);c[w>>2]=(c[w>>2]|0)+(c[(c[i>>2]|0)+2332>>2]<<1);c[o>>2]=(c[o>>2]|0)+1}m=(c[i>>2]|0)+1284|0;D=d;E=m+64|0;do{c[m>>2]=c[D>>2];m=m+4|0;D=D+4|0}while((m|0)<(E|0));ga(c[I>>2]|0);l=h;return}function Dc(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0;d=l;l=l+48|0;e=d+32|0;f=d+28|0;g=d+24|0;h=d+20|0;i=d+16|0;j=d+12|0;k=d+8|0;m=d+4|0;n=d;c[f>>2]=a;c[g>>2]=b;b=c[f>>2]|0;c[h>>2]=(Gc((c[f>>2]|0)>0?b:0-b|0)|0)-1;c[k>>2]=c[f>>2]<<c[h>>2];c[j>>2]=536870911/(c[k>>2]>>16|0)|0;c[n>>2]=c[j>>2]<<16;f=R(c[k>>2]>>16,(c[j>>2]&65535)<<16>>16)|0;c[m>>2]=536870912-(f+((R(c[k>>2]&65535,(c[j>>2]&65535)<<16>>16)|0)>>16))<<3;k=R(c[m>>2]>>16,(c[j>>2]&65535)<<16>>16)|0;f=(c[n>>2]|0)+(k+((R(c[m>>2]&65535,(c[j>>2]&65535)<<16>>16)|0)>>16))|0;c[n>>2]=f+(R(c[m>>2]|0,(c[j>>2]>>15)+1>>1)|0);c[i>>2]=61-(c[h>>2]|0)-(c[g>>2]|0);g=c[i>>2]|0;if((c[i>>2]|0)>0)if((g|0)<32){c[e>>2]=c[n>>2]>>c[i>>2];o=c[e>>2]|0;l=d;return o|0}else{c[e>>2]=0;o=c[e>>2]|0;l=d;return o|0}h=c[n>>2]|0;j=0-(c[i>>2]|0)|0;do if((-2147483648>>0-g|0)>(2147483647>>0-(c[i>>2]|0)|0)){if((h|0)>(-2147483648>>j|0)){p=-2147483648>>0-(c[i>>2]|0);break}if((c[n>>2]|0)<(2147483647>>0-(c[i>>2]|0)|0)){p=2147483647>>0-(c[i>>2]|0);break}else{p=c[n>>2]|0;break}}else{if((h|0)>(2147483647>>j|0)){p=2147483647>>0-(c[i>>2]|0);break}if((c[n>>2]|0)<(-2147483648>>0-(c[i>>2]|0)|0)){p=-2147483648>>0-(c[i>>2]|0);break}else{p=c[n>>2]|0;break}}while(0);c[e>>2]=p<<0-(c[i>>2]|0);o=c[e>>2]|0;l=d;return o|0}function Ec(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;e=l;l=l+48|0;f=e+40|0;g=e+36|0;h=e+32|0;i=e+28|0;j=e+24|0;k=e+20|0;m=e+16|0;n=e+12|0;o=e+8|0;p=e+4|0;q=e;c[g>>2]=a;c[h>>2]=b;c[i>>2]=d;d=c[g>>2]|0;c[j>>2]=(Gc((c[g>>2]|0)>0?d:0-d|0)|0)-1;c[o>>2]=c[g>>2]<<c[j>>2];g=c[h>>2]|0;c[k>>2]=(Gc((c[h>>2]|0)>0?g:0-g|0)|0)-1;c[p>>2]=c[h>>2]<<c[k>>2];c[n>>2]=536870911/(c[p>>2]>>16|0)|0;h=R(c[o>>2]>>16,(c[n>>2]&65535)<<16>>16)|0;c[q>>2]=h+((R(c[o>>2]&65535,(c[n>>2]&65535)<<16>>16)|0)>>16);h=c[o>>2]|0;g=c[p>>2]|0;p=c[q>>2]|0;d=Ke(g|0,((g|0)<0)<<31>>31|0,p|0,((p|0)<0)<<31>>31|0)|0;p=Fe(d|0,C|0,32)|0;c[o>>2]=h-(p<<3);p=R(c[o>>2]>>16,(c[n>>2]&65535)<<16>>16)|0;c[q>>2]=(c[q>>2]|0)+(p+((R(c[o>>2]&65535,(c[n>>2]&65535)<<16>>16)|0)>>16));c[m>>2]=29+(c[j>>2]|0)-(c[k>>2]|0)-(c[i>>2]|0);i=c[m>>2]|0;if((c[m>>2]|0)>=0)if((i|0)<32){c[f>>2]=c[q>>2]>>c[m>>2];r=c[f>>2]|0;l=e;return r|0}else{c[f>>2]=0;r=c[f>>2]|0;l=e;return r|0}k=c[q>>2]|0;j=0-(c[m>>2]|0)|0;do if((-2147483648>>0-i|0)>(2147483647>>0-(c[m>>2]|0)|0)){if((k|0)>(-2147483648>>j|0)){s=-2147483648>>0-(c[m>>2]|0);break}if((c[q>>2]|0)<(2147483647>>0-(c[m>>2]|0)|0)){s=2147483647>>0-(c[m>>2]|0);break}else{s=c[q>>2]|0;break}}else{if((k|0)>(2147483647>>j|0)){s=2147483647>>0-(c[m>>2]|0);break}if((c[q>>2]|0)<(-2147483648>>0-(c[m>>2]|0)|0)){s=-2147483648>>0-(c[m>>2]|0);break}else{s=c[q>>2]|0;break}}while(0);c[f>>2]=s<<0-(c[m>>2]|0);r=c[f>>2]|0;l=e;return r|0}function Fc(a,d,e,f,g){a=a|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;h=l;l=l+48|0;i=h+36|0;j=h+32|0;k=h+28|0;m=h+24|0;n=h+20|0;o=h+16|0;p=h+12|0;q=h+8|0;r=h+4|0;s=h;c[i>>2]=a;c[j>>2]=d;c[k>>2]=e;c[m>>2]=f;c[n>>2]=g;c[p>>2]=c[n>>2];while(1){if((c[p>>2]|0)>=(c[m>>2]|0))break;c[s>>2]=(c[j>>2]|0)+((c[p>>2]|0)-1<<1);c[q>>2]=R(b[c[s>>2]>>1]|0,b[c[k>>2]>>1]|0)|0;c[q>>2]=(c[q>>2]|0)+(R(b[(c[s>>2]|0)+-2>>1]|0,b[(c[k>>2]|0)+2>>1]|0)|0);c[q>>2]=(c[q>>2]|0)+(R(b[(c[s>>2]|0)+-4>>1]|0,b[(c[k>>2]|0)+4>>1]|0)|0);c[q>>2]=(c[q>>2]|0)+(R(b[(c[s>>2]|0)+-6>>1]|0,b[(c[k>>2]|0)+6>>1]|0)|0);c[q>>2]=(c[q>>2]|0)+(R(b[(c[s>>2]|0)+-8>>1]|0,b[(c[k>>2]|0)+8>>1]|0)|0);c[q>>2]=(c[q>>2]|0)+(R(b[(c[s>>2]|0)+-10>>1]|0,b[(c[k>>2]|0)+10>>1]|0)|0);c[o>>2]=6;while(1){if((c[o>>2]|0)>=(c[n>>2]|0))break;c[q>>2]=(c[q>>2]|0)+(R(b[(c[s>>2]|0)+(0-(c[o>>2]|0)<<1)>>1]|0,b[(c[k>>2]|0)+(c[o>>2]<<1)>>1]|0)|0);c[q>>2]=(c[q>>2]|0)+(R(b[(c[s>>2]|0)+(0-(c[o>>2]|0)-1<<1)>>1]|0,b[(c[k>>2]|0)+((c[o>>2]|0)+1<<1)>>1]|0)|0);c[o>>2]=(c[o>>2]|0)+2}c[q>>2]=(b[(c[s>>2]|0)+2>>1]<<12)-(c[q>>2]|0);c[r>>2]=(c[q>>2]>>11)+1>>1;if((c[r>>2]|0)>32767)t=32767;else t=(c[r>>2]|0)<-32768?-32768:c[r>>2]|0;b[(c[i>>2]|0)+(c[p>>2]<<1)>>1]=t;c[p>>2]=(c[p>>2]|0)+1}He(c[i>>2]|0,0,c[n>>2]<<1|0)|0;l=h;return}function Gc(a){a=a|0;var b=0,d=0,e=0;b=l;l=l+16|0;d=b;c[d>>2]=a;if(!(c[d>>2]|0)){e=32;l=b;return e|0}e=32-(32-(U(c[d>>2]|0)|0))|0;l=b;return e|0}function Hc(b,d,e,f,g,h){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0;i=l;l=l+192|0;j=i+176|0;k=i+172|0;m=i+168|0;n=i+164|0;o=i+160|0;p=i+156|0;q=i+152|0;r=i+148|0;s=i+144|0;t=i+4|0;u=i;c[j>>2]=b;c[k>>2]=d;c[m>>2]=e;c[n>>2]=f;c[o>>2]=g;c[p>>2]=h;c[s>>2]=0;c[q>>2]=c[(c[j>>2]|0)+2328>>2];c[t+136>>2]=0;do if(!(c[o>>2]|0))v=4;else{if((c[o>>2]|0)==2?(c[(c[j>>2]|0)+2420+(c[(c[j>>2]|0)+2388>>2]<<2)>>2]|0)==1:0){v=4;break}Lc(c[j>>2]|0,t,c[m>>2]|0,1)}while(0);if((v|0)==4){v=(c[q>>2]|0)+16-1&-16;c[u>>2]=da()|0;h=l;l=l+((1*(v<<1)|0)+15&-16)|0;Ic(c[j>>2]|0,c[k>>2]|0,c[(c[j>>2]|0)+2388>>2]|0,c[o>>2]|0,c[p>>2]|0);Jc(c[k>>2]|0,h,a[(c[j>>2]|0)+2736+29>>0]|0,a[(c[j>>2]|0)+2736+30>>0]|0,c[(c[j>>2]|0)+2328>>2]|0);Kc(c[j>>2]|0,t,c[p>>2]|0);Cc(c[j>>2]|0,t,c[m>>2]|0,h);Lc(c[j>>2]|0,t,c[m>>2]|0,0);c[(c[j>>2]|0)+4160>>2]=0;c[(c[j>>2]|0)+4164>>2]=a[(c[j>>2]|0)+2736+29>>0];c[(c[j>>2]|0)+2376>>2]=0;ga(c[u>>2]|0)}c[r>>2]=(c[(c[j>>2]|0)+2336>>2]|0)-(c[(c[j>>2]|0)+2328>>2]|0);Le((c[j>>2]|0)+1348|0,(c[j>>2]|0)+1348+(c[(c[j>>2]|0)+2328>>2]<<1)|0,c[r>>2]<<1|0)|0;Ie((c[j>>2]|0)+1348+(c[r>>2]<<1)|0,c[m>>2]|0,c[(c[j>>2]|0)+2328>>2]<<1|0)|0;Mc(c[j>>2]|0,c[m>>2]|0,c[q>>2]|0);qc(c[j>>2]|0,t,c[m>>2]|0,c[q>>2]|0);c[(c[j>>2]|0)+2308>>2]=c[t+((c[(c[j>>2]|0)+2324>>2]|0)-1<<2)>>2];c[c[n>>2]>>2]=c[q>>2];l=i;return c[s>>2]|0}function Ic(d,e,f,g,h){d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0;i=l;l=l+96|0;j=i+36|0;k=i+32|0;m=i+28|0;n=i+24|0;o=i+20|0;p=i+16|0;q=i+12|0;r=i+8|0;s=i+4|0;t=i;u=i+40|0;v=i+72|0;c[j>>2]=d;c[k>>2]=e;c[m>>2]=f;c[n>>2]=g;c[o>>2]=h;if(!(c[n>>2]|0)?!(c[(c[j>>2]|0)+2404+(c[m>>2]<<2)>>2]|0):0)c[r>>2]=bc(c[k>>2]|0,22720,8)|0;else c[r>>2]=(bc(c[k>>2]|0,22716,8)|0)+2;a[(c[j>>2]|0)+2736+29>>0]=c[r>>2]>>1;a[(c[j>>2]|0)+2736+30>>0]=c[r>>2]&1;m=c[k>>2]|0;if((c[o>>2]|0)==2){n=(bc(m,20582,8)|0)&255;a[(c[j>>2]|0)+2736>>0]=n}else{n=(bc(m,20558+(a[(c[j>>2]|0)+2736+29>>0]<<3)|0,8)|0)<<3&255;a[(c[j>>2]|0)+2736>>0]=n;n=((bc(c[k>>2]|0,22745,8)|0)&255)<<24>>24;m=(c[j>>2]|0)+2736|0;a[m>>0]=(a[m>>0]|0)+n}c[p>>2]=1;while(1){w=c[k>>2]|0;if((c[p>>2]|0)>=(c[(c[j>>2]|0)+2324>>2]|0))break;n=(bc(w,20582,8)|0)&255;a[(c[j>>2]|0)+2736+(c[p>>2]|0)>>0]=n;c[p>>2]=(c[p>>2]|0)+1}n=(bc(w,(c[(c[(c[j>>2]|0)+2732>>2]|0)+12>>2]|0)+(R(a[(c[j>>2]|0)+2736+29>>0]>>1,b[c[(c[j>>2]|0)+2732>>2]>>1]|0)|0)|0,8)|0)&255;a[(c[j>>2]|0)+2736+8>>0]=n;dd(u,v,c[(c[j>>2]|0)+2732>>2]|0,a[(c[j>>2]|0)+2736+8>>0]|0);c[p>>2]=0;while(1){if((c[p>>2]|0)>=(b[(c[(c[j>>2]|0)+2732>>2]|0)+2>>1]|0))break;c[r>>2]=bc(c[k>>2]|0,(c[(c[(c[j>>2]|0)+2732>>2]|0)+24>>2]|0)+(b[u+(c[p>>2]<<1)>>1]|0)|0,8)|0;if(c[r>>2]|0){if((c[r>>2]|0)==8){v=bc(c[k>>2]|0,22753,8)|0;c[r>>2]=(c[r>>2]|0)+v}}else{v=bc(c[k>>2]|0,22753,8)|0;c[r>>2]=(c[r>>2]|0)-v}a[(c[j>>2]|0)+2736+8+((c[p>>2]|0)+1)>>0]=(c[r>>2]|0)-4;c[p>>2]=(c[p>>2]|0)+1}if((c[(c[j>>2]|0)+2324>>2]|0)==4){p=(bc(c[k>>2]|0,22722,8)|0)&255;x=p;y=c[j>>2]|0}else{x=4;y=c[j>>2]|0}a[y+2736+31>>0]=x;if((a[(c[j>>2]|0)+2736+29>>0]|0)!=2){z=c[j>>2]|0;A=z+2736|0;B=A+29|0;C=a[B>>0]|0;D=C<<24>>24;E=c[j>>2]|0;F=E+2396|0;c[F>>2]=D;G=c[k>>2]|0;H=bc(G,22730,8)|0;I=H&255;J=c[j>>2]|0;K=J+2736|0;L=K+34|0;a[L>>0]=I;l=i;return}c[s>>2]=1;if(((c[o>>2]|0)==2?(c[(c[j>>2]|0)+2396>>2]|0)==2:0)?(c[t>>2]=((bc(c[k>>2]|0,22792,8)|0)&65535)<<16>>16,(c[t>>2]|0)>0):0){c[t>>2]=(c[t>>2]|0)-9;b[(c[j>>2]|0)+2736+26>>1]=(b[(c[j>>2]|0)+2400>>1]|0)+(c[t>>2]|0);c[s>>2]=0}if(c[s>>2]|0){s=((bc(c[k>>2]|0,22760,8)|0)&65535)<<16>>16;t=(R(s,c[(c[j>>2]|0)+2316>>2]>>1)|0)&65535;b[(c[j>>2]|0)+2736+26>>1]=t;t=((bc(c[k>>2]|0,c[(c[j>>2]|0)+2380>>2]|0,8)|0)&65535)<<16>>16;s=(c[j>>2]|0)+2736+26|0;b[s>>1]=(b[s>>1]|0)+t}b[(c[j>>2]|0)+2400>>1]=b[(c[j>>2]|0)+2736+26>>1]|0;t=(bc(c[k>>2]|0,c[(c[j>>2]|0)+2384>>2]|0,8)|0)&255;a[(c[j>>2]|0)+2736+28>>0]=t;t=(bc(c[k>>2]|0,20623,8)|0)&255;a[(c[j>>2]|0)+2736+32>>0]=t;c[q>>2]=0;while(1){if((c[q>>2]|0)>=(c[(c[j>>2]|0)+2324>>2]|0))break;t=(bc(c[k>>2]|0,c[108+(a[(c[j>>2]|0)+2736+32>>0]<<2)>>2]|0,8)|0)&255;a[(c[j>>2]|0)+2736+4+(c[q>>2]|0)>>0]=t;c[q>>2]=(c[q>>2]|0)+1}if(!(c[o>>2]|0)){o=(bc(c[k>>2]|0,22713,8)|0)&255;M=o;N=c[j>>2]|0}else{M=0;N=c[j>>2]|0}a[N+2736+33>>0]=M;z=c[j>>2]|0;A=z+2736|0;B=A+29|0;C=a[B>>0]|0;D=C<<24>>24;E=c[j>>2]|0;F=E+2396|0;c[F>>2]=D;G=c[k>>2]|0;H=bc(G,22730,8)|0;I=H&255;J=c[j>>2]|0;K=J+2736|0;L=K+34|0;a[L>>0]=I;l=i;return}function Jc(a,d,e,f,g){a=a|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0;h=l;l=l+224|0;i=h+212|0;j=h+208|0;k=h+204|0;m=h+200|0;n=h+196|0;o=h+192|0;p=h+188|0;q=h+184|0;r=h+180|0;s=h+176|0;t=h+172|0;u=h+168|0;v=h+88|0;w=h+8|0;x=h+4|0;y=h;c[i>>2]=a;c[j>>2]=d;c[k>>2]=e;c[m>>2]=f;c[n>>2]=g;c[u>>2]=bc(c[i>>2]|0,23053+((c[k>>2]>>1)*9|0)|0,8)|0;c[r>>2]=c[n>>2]>>4;if((c[r>>2]<<4|0)<(c[n>>2]|0))c[r>>2]=(c[r>>2]|0)+1;c[y>>2]=22873+((c[u>>2]|0)*18|0);c[o>>2]=0;while(1){if((c[o>>2]|0)>=(c[r>>2]|0))break;c[w+(c[o>>2]<<2)>>2]=0;u=bc(c[i>>2]|0,c[y>>2]|0,8)|0;g=c[o>>2]|0;f=u;while(1){c[v+(g<<2)>>2]=f;z=c[o>>2]|0;if((c[v+(c[o>>2]<<2)>>2]|0)!=17)break;u=w+(z<<2)|0;c[u>>2]=(c[u>>2]|0)+1;u=bc(c[i>>2]|0,23035+((c[w+(c[o>>2]<<2)>>2]|0)==10&1)|0,8)|0;g=c[o>>2]|0;f=u}c[o>>2]=z+1}c[o>>2]=0;while(1){if((c[o>>2]|0)>=(c[r>>2]|0))break;z=(c[j>>2]|0)+((c[o>>2]&65535)<<16>>16<<4<<1)|0;if((c[v+(c[o>>2]<<2)>>2]|0)>0)td(z,c[i>>2]|0,c[v+(c[o>>2]<<2)>>2]|0);else{y=z;z=y+32|0;do{b[y>>1]=0;y=y+2|0}while((y|0)<(z|0))}c[o>>2]=(c[o>>2]|0)+1}c[o>>2]=0;while(1){if((c[o>>2]|0)>=(c[r>>2]|0))break;if((c[w+(c[o>>2]<<2)>>2]|0)>0){c[t>>2]=c[w+(c[o>>2]<<2)>>2];c[x>>2]=(c[j>>2]|0)+((c[o>>2]&65535)<<16>>16<<4<<1);c[q>>2]=0;while(1){if((c[q>>2]|0)>=16)break;c[s>>2]=b[(c[x>>2]|0)+(c[q>>2]<<1)>>1];c[p>>2]=0;while(1){A=c[s>>2]|0;if((c[p>>2]|0)>=(c[t>>2]|0))break;c[s>>2]=A<<1;y=bc(c[i>>2]|0,22711,8)|0;c[s>>2]=(c[s>>2]|0)+y;c[p>>2]=(c[p>>2]|0)+1}b[(c[x>>2]|0)+(c[q>>2]<<1)>>1]=A;c[q>>2]=(c[q>>2]|0)+1}y=v+(c[o>>2]<<2)|0;c[y>>2]=c[y>>2]|c[t>>2]<<5}c[o>>2]=(c[o>>2]|0)+1}zc(c[i>>2]|0,c[j>>2]|0,c[n>>2]|0,c[k>>2]|0,c[m>>2]|0,v);l=h;return}function Kc(d,e,f){d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0;g=l;l=l+96|0;h=g+24|0;i=g+20|0;j=g+16|0;k=g+12|0;m=g+8|0;n=g+4|0;o=g+64|0;p=g+32|0;q=g;c[h>>2]=d;c[i>>2]=e;c[j>>2]=f;ad((c[i>>2]|0)+16|0,(c[h>>2]|0)+2736|0,(c[h>>2]|0)+2312|0,(c[j>>2]|0)==2&1,c[(c[h>>2]|0)+2324>>2]|0);bd(o,(c[h>>2]|0)+2736+8|0,c[(c[h>>2]|0)+2732>>2]|0);sc((c[i>>2]|0)+32+32|0,o,c[(c[h>>2]|0)+2340>>2]|0);if((c[(c[h>>2]|0)+2376>>2]|0)==1)a[(c[h>>2]|0)+2736+31>>0]=4;if((a[(c[h>>2]|0)+2736+31>>0]|0)<4){c[k>>2]=0;while(1){if((c[k>>2]|0)>=(c[(c[h>>2]|0)+2340>>2]|0))break;j=(b[(c[h>>2]|0)+2344+(c[k>>2]<<1)>>1]|0)+((R(a[(c[h>>2]|0)+2736+31>>0]|0,(b[o+(c[k>>2]<<1)>>1]|0)-(b[(c[h>>2]|0)+2344+(c[k>>2]<<1)>>1]|0)|0)|0)>>2)&65535;b[p+(c[k>>2]<<1)>>1]=j;c[k>>2]=(c[k>>2]|0)+1}sc((c[i>>2]|0)+32|0,p,c[(c[h>>2]|0)+2340>>2]|0)}else Ie((c[i>>2]|0)+32|0,(c[i>>2]|0)+32+32|0,c[(c[h>>2]|0)+2340>>2]<<1|0)|0;Ie((c[h>>2]|0)+2344|0,o|0,c[(c[h>>2]|0)+2340>>2]<<1|0)|0;if(c[(c[h>>2]|0)+4160>>2]|0){Yc((c[i>>2]|0)+32|0,c[(c[h>>2]|0)+2340>>2]|0,63570);Yc((c[i>>2]|0)+32+32|0,c[(c[h>>2]|0)+2340>>2]|0,63570)}if((a[(c[h>>2]|0)+2736+29>>0]|0)!=2){He(c[i>>2]|0,0,c[(c[h>>2]|0)+2324>>2]<<2|0)|0;He((c[i>>2]|0)+96|0,0,(c[(c[h>>2]|0)+2324>>2]|0)*5<<1|0)|0;a[(c[h>>2]|0)+2736+32>>0]=0;r=0;s=c[i>>2]|0;t=s+136|0;c[t>>2]=r;l=g;return}cd(b[(c[h>>2]|0)+2736+26>>1]|0,a[(c[h>>2]|0)+2736+28>>0]|0,c[i>>2]|0,c[(c[h>>2]|0)+2316>>2]|0,c[(c[h>>2]|0)+2324>>2]|0);c[q>>2]=c[120+(a[(c[h>>2]|0)+2736+32>>0]<<2)>>2];c[m>>2]=0;while(1){u=(c[h>>2]|0)+2736|0;if((c[m>>2]|0)>=(c[(c[h>>2]|0)+2324>>2]|0))break;c[n>>2]=a[u+4+(c[m>>2]|0)>>0];c[k>>2]=0;while(1){if((c[k>>2]|0)>=5)break;b[(c[i>>2]|0)+96+(((c[m>>2]|0)*5|0)+(c[k>>2]|0)<<1)>>1]=a[(c[q>>2]|0)+(((c[n>>2]|0)*5|0)+(c[k>>2]|0))>>0]<<7;c[k>>2]=(c[k>>2]|0)+1}c[m>>2]=(c[m>>2]|0)+1}c[n>>2]=a[u+33>>0];r=b[17784+(c[n>>2]<<1)>>1]|0;s=c[i>>2]|0;t=s+136|0;c[t>>2]=r;l=g;return}function Lc(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0;f=l;l=l+16|0;g=f+12|0;h=f+8|0;i=f+4|0;j=f;c[g>>2]=a;c[h>>2]=b;c[i>>2]=d;c[j>>2]=e;if((c[(c[g>>2]|0)+2316>>2]|0)!=(c[(c[g>>2]|0)+4168+80>>2]|0)){Bc(c[g>>2]|0);c[(c[g>>2]|0)+4168+80>>2]=c[(c[g>>2]|0)+2316>>2]}e=c[g>>2]|0;d=c[h>>2]|0;if(c[j>>2]|0){Tc(e,d,c[i>>2]|0);i=(c[g>>2]|0)+4160|0;c[i>>2]=(c[i>>2]|0)+1;l=f;return}else{Uc(e,d);l=f;return}}function Mc(a,d,e){a=a|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0;f=l;l=l+48|0;g=f+40|0;h=f+36|0;i=f+32|0;j=f+28|0;k=f+24|0;m=f+20|0;n=f+16|0;o=f+12|0;p=f+8|0;q=f+4|0;r=f;c[g>>2]=a;c[h>>2]=d;c[i>>2]=e;c[n>>2]=(c[g>>2]|0)+4168;if(c[(c[g>>2]|0)+4160>>2]|0){Nc((c[n>>2]|0)+60|0,(c[n>>2]|0)+64|0,c[h>>2]|0,c[i>>2]|0);s=1;t=c[n>>2]|0;u=t+48|0;c[u>>2]=s;l=f;return}a:do if(c[(c[g>>2]|0)+4168+48>>2]|0){Nc(m,k,c[h>>2]|0,c[i>>2]|0);if((c[k>>2]|0)<=(c[(c[n>>2]|0)+64>>2]|0)){if((c[k>>2]|0)<(c[(c[n>>2]|0)+64>>2]|0))c[m>>2]=c[m>>2]>>(c[(c[n>>2]|0)+64>>2]|0)-(c[k>>2]|0)}else c[(c[n>>2]|0)+60>>2]=c[(c[n>>2]|0)+60>>2]>>(c[k>>2]|0)-(c[(c[n>>2]|0)+64>>2]|0);if((c[m>>2]|0)>(c[(c[n>>2]|0)+60>>2]|0)){c[p>>2]=Oc(c[(c[n>>2]|0)+60>>2]|0)|0;c[p>>2]=(c[p>>2]|0)-1;c[(c[n>>2]|0)+60>>2]=c[(c[n>>2]|0)+60>>2]<<c[p>>2];e=c[m>>2]|0;c[m>>2]=e>>(Pc(24-(c[p>>2]|0)|0,0)|0);c[o>>2]=(c[(c[n>>2]|0)+60>>2]|0)/(((c[m>>2]|0)>1?c[m>>2]|0:1)|0)|0;c[q>>2]=(Qc(c[o>>2]|0)|0)<<4;c[r>>2]=(65536-(c[q>>2]|0)|0)/(c[i>>2]|0)|0;c[r>>2]=c[r>>2]<<2;c[j>>2]=0;while(1){if((c[j>>2]|0)>=(c[i>>2]|0))break a;e=R(c[q>>2]>>16,b[(c[h>>2]|0)+(c[j>>2]<<1)>>1]|0)|0;d=e+((R(c[q>>2]&65535,b[(c[h>>2]|0)+(c[j>>2]<<1)>>1]|0)|0)>>16)&65535;b[(c[h>>2]|0)+(c[j>>2]<<1)>>1]=d;c[q>>2]=(c[q>>2]|0)+(c[r>>2]|0);if((c[q>>2]|0)>65536)break a;c[j>>2]=(c[j>>2]|0)+1}}}while(0);s=0;t=c[n>>2]|0;u=t+48|0;c[u>>2]=s;l=f;return}function Nc(a,d,e,f){a=a|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0;g=l;l=l+32|0;h=g+28|0;i=g+24|0;j=g+20|0;k=g+16|0;m=g+12|0;n=g+8|0;o=g+4|0;p=g;c[h>>2]=a;c[i>>2]=d;c[j>>2]=e;c[k>>2]=f;c[p>>2]=0;c[n>>2]=0;c[k>>2]=(c[k>>2]|0)+-1;c[m>>2]=0;while(1){if((c[m>>2]|0)>=(c[k>>2]|0))break;c[p>>2]=(c[p>>2]|0)+(R(b[(c[j>>2]|0)+(c[m>>2]<<1)>>1]|0,b[(c[j>>2]|0)+(c[m>>2]<<1)>>1]|0)|0);c[p>>2]=(c[p>>2]|0)+(R(b[(c[j>>2]|0)+((c[m>>2]|0)+1<<1)>>1]|0,b[(c[j>>2]|0)+((c[m>>2]|0)+1<<1)>>1]|0)|0);if((c[p>>2]|0)<0){q=4;break}c[m>>2]=(c[m>>2]|0)+2}if((q|0)==4){c[p>>2]=(c[p>>2]|0)>>>2;c[n>>2]=2}while(1){if((c[m>>2]|0)>=(c[k>>2]|0))break;c[o>>2]=R(b[(c[j>>2]|0)+(c[m>>2]<<1)>>1]|0,b[(c[j>>2]|0)+(c[m>>2]<<1)>>1]|0)|0;c[o>>2]=(c[o>>2]|0)+(R(b[(c[j>>2]|0)+((c[m>>2]|0)+1<<1)>>1]|0,b[(c[j>>2]|0)+((c[m>>2]|0)+1<<1)>>1]|0)|0);c[p>>2]=(c[p>>2]|0)+((c[o>>2]|0)>>>(c[n>>2]|0));if((c[p>>2]|0)<0){c[p>>2]=(c[p>>2]|0)>>>2;c[n>>2]=(c[n>>2]|0)+2}c[m>>2]=(c[m>>2]|0)+2}if((c[m>>2]|0)==(c[k>>2]|0)){c[o>>2]=R(b[(c[j>>2]|0)+(c[m>>2]<<1)>>1]|0,b[(c[j>>2]|0)+(c[m>>2]<<1)>>1]|0)|0;c[p>>2]=(c[p>>2]|0)+(c[o>>2]>>c[n>>2])}if(!(c[p>>2]&-1073741824)){r=c[n>>2]|0;s=c[i>>2]|0;c[s>>2]=r;t=c[p>>2]|0;u=c[h>>2]|0;c[u>>2]=t;l=g;return}c[p>>2]=(c[p>>2]|0)>>>2;c[n>>2]=(c[n>>2]|0)+2;r=c[n>>2]|0;s=c[i>>2]|0;c[s>>2]=r;t=c[p>>2]|0;u=c[h>>2]|0;c[u>>2]=t;l=g;return}function Oc(a){a=a|0;var b=0,d=0,e=0;b=l;l=l+16|0;d=b;c[d>>2]=a;if(!(c[d>>2]|0)){e=32;l=b;return e|0}e=32-(32-(U(c[d>>2]|0)|0))|0;l=b;return e|0}function Pc(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=l;l=l+16|0;e=d+4|0;f=d;c[e>>2]=a;c[f>>2]=b;l=d;return ((c[e>>2]|0)>(c[f>>2]|0)?c[e>>2]|0:c[f>>2]|0)|0}function Qc(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,i=0;b=l;l=l+32|0;d=b+16|0;e=b+12|0;f=b+8|0;g=b+4|0;h=b;c[e>>2]=a;if((c[e>>2]|0)<=0){c[d>>2]=0;i=c[d>>2]|0;l=b;return i|0}Rc(c[e>>2]|0,g,h);if(c[g>>2]&1|0)c[f>>2]=32768;else c[f>>2]=46214;c[f>>2]=c[f>>2]>>(c[g>>2]>>1);g=R(c[f>>2]>>16,(((c[h>>2]&65535)<<16>>16)*213&65535)<<16>>16)|0;c[f>>2]=(c[f>>2]|0)+(g+((R(c[f>>2]&65535,(((c[h>>2]&65535)<<16>>16)*213&65535)<<16>>16)|0)>>16));c[d>>2]=c[f>>2];i=c[d>>2]|0;l=b;return i|0}function Rc(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0;e=l;l=l+16|0;f=e+12|0;g=e+8|0;h=e+4|0;i=e;c[f>>2]=a;c[g>>2]=b;c[h>>2]=d;c[i>>2]=Oc(c[f>>2]|0)|0;c[c[g>>2]>>2]=c[i>>2];g=(Sc(c[f>>2]|0,24-(c[i>>2]|0)|0)|0)&127;c[c[h>>2]>>2]=g;l=e;return}function Sc(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;d=l;l=l+32|0;e=d+20|0;f=d+16|0;g=d+12|0;h=d+8|0;i=d+4|0;j=d;c[f>>2]=a;c[g>>2]=b;c[h>>2]=c[f>>2];c[i>>2]=c[g>>2];c[j>>2]=0-(c[g>>2]|0);if(!(c[g>>2]|0)){c[e>>2]=c[f>>2];k=c[e>>2]|0;l=d;return k|0}f=c[h>>2]|0;if((c[g>>2]|0)<0){c[e>>2]=f<<c[j>>2]|(c[h>>2]|0)>>>(32-(c[j>>2]|0)|0);k=c[e>>2]|0;l=d;return k|0}else{c[e>>2]=f<<32-(c[i>>2]|0)|(c[h>>2]|0)>>>(c[i>>2]|0);k=c[e>>2]|0;l=d;return k|0}return 0}function Tc(a,d,e){a=a|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,S=0;f=l;l=l+160|0;g=f+116|0;h=f+112|0;i=f+108|0;j=f+104|0;k=f+100|0;m=f+96|0;n=f+92|0;o=f+88|0;p=f+84|0;q=f+80|0;r=f+76|0;s=f+72|0;t=f+68|0;u=f+64|0;v=f+60|0;w=f+56|0;x=f+52|0;y=f+48|0;z=f+44|0;A=f+40|0;B=f+36|0;C=f+152|0;D=f+32|0;E=f+28|0;F=f+120|0;G=f+24|0;H=f+16|0;I=f+8|0;J=f+4|0;K=f;c[g>>2]=a;c[h>>2]=d;c[i>>2]=e;c[G>>2]=(c[g>>2]|0)+4168;e=(c[(c[g>>2]|0)+2336>>2]|0)+(c[(c[g>>2]|0)+2328>>2]|0)|0;c[I>>2]=da()|0;d=l;l=l+((1*(e<<2)|0)+15&-16)|0;e=l;l=l+((1*(c[(c[g>>2]|0)+2336>>2]<<1)|0)+15&-16)|0;c[H>>2]=c[(c[G>>2]|0)+72>>2]>>6;c[H+4>>2]=c[(c[G>>2]|0)+72+4>>2]>>6;if(c[(c[g>>2]|0)+2376>>2]|0){L=(c[G>>2]|0)+14|0;M=L+32|0;do{b[L>>1]=0;L=L+2|0}while((L|0)<(M|0))}Vc(w,q,x,r,(c[g>>2]|0)+4|0,H,c[(c[g>>2]|0)+2332>>2]|0,c[(c[g>>2]|0)+2324>>2]|0);a=(c[g>>2]|0)+4|0;N=c[(c[G>>2]|0)+84>>2]|0;if((c[w>>2]>>c[r>>2]|0)<(c[x>>2]>>c[q>>2]|0))c[y>>2]=a+((Wc(0,(R(N-1|0,c[(c[G>>2]|0)+88>>2]|0)|0)-128|0)|0)<<2);else c[y>>2]=a+((Wc(0,(R(N,c[(c[G>>2]|0)+88>>2]|0)|0)-128|0)|0)<<2);c[D>>2]=(c[G>>2]|0)+4;b[C>>1]=b[(c[G>>2]|0)+56>>1]|0;c[t>>2]=b[20502+((Xc(1,c[(c[g>>2]|0)+4160>>2]|0)|0)<<1)>>1];N=(c[(c[g>>2]|0)+4164>>2]|0)==2;a=Xc(1,c[(c[g>>2]|0)+4160>>2]|0)|0;if(N)c[u>>2]=b[20506+(a<<1)>>1];else c[u>>2]=b[20510+(a<<1)>>1];Yc((c[G>>2]|0)+14|0,c[(c[g>>2]|0)+2340>>2]|0,64881);Ie(F|0,(c[G>>2]|0)+14|0,c[(c[g>>2]|0)+2340>>2]<<1|0)|0;do if(!(c[(c[g>>2]|0)+4160>>2]|0)){b[C>>1]=16384;if((c[(c[g>>2]|0)+4164>>2]|0)!=2){c[J>>2]=vc((c[G>>2]|0)+14|0,c[(c[g>>2]|0)+2340>>2]|0)|0;c[K>>2]=_c(134217728,c[J>>2]|0)|0;c[K>>2]=Pc(4194304,c[K>>2]|0)|0;c[K>>2]=c[K>>2]<<3;a=R(c[K>>2]>>16,(c[u>>2]&65535)<<16>>16)|0;c[u>>2]=a+((R(c[K>>2]&65535,(c[u>>2]&65535)<<16>>16)|0)>>16)>>14;break}c[j>>2]=0;while(1){if((c[j>>2]|0)>=5)break;b[C>>1]=(b[C>>1]|0)-(b[(c[D>>2]|0)+(c[j>>2]<<1)>>1]|0);c[j>>2]=(c[j>>2]|0)+1}b[C>>1]=Zc(3277,b[C>>1]|0)|0;b[C>>1]=(R(b[C>>1]|0,b[(c[G>>2]|0)+68>>1]|0)|0)>>14}while(0);c[s>>2]=c[(c[G>>2]|0)+52>>2];c[n>>2]=(c[c[G>>2]>>2]>>7)+1>>1;c[p>>2]=c[(c[g>>2]|0)+2336>>2];c[o>>2]=(c[(c[g>>2]|0)+2336>>2]|0)-(c[n>>2]|0)-(c[(c[g>>2]|0)+2340>>2]|0)-2;Fc(e+(c[o>>2]<<1)|0,(c[g>>2]|0)+1348+(c[o>>2]<<1)|0,F,(c[(c[g>>2]|0)+2336>>2]|0)-(c[o>>2]|0)|0,c[(c[g>>2]|0)+2340>>2]|0);c[v>>2]=$c(c[(c[G>>2]|0)+72+4>>2]|0,46)|0;c[v>>2]=(c[v>>2]|0)<1073741823?c[v>>2]|0:1073741823;c[j>>2]=(c[o>>2]|0)+(c[(c[g>>2]|0)+2340>>2]|0);while(1){if((c[j>>2]|0)>=(c[(c[g>>2]|0)+2336>>2]|0))break;K=R(c[v>>2]>>16,b[e+(c[j>>2]<<1)>>1]|0)|0;J=K+((R(c[v>>2]&65535,b[e+(c[j>>2]<<1)>>1]|0)|0)>>16)|0;c[d+(c[j>>2]<<2)>>2]=J;c[j>>2]=(c[j>>2]|0)+1}c[m>>2]=0;while(1){if((c[m>>2]|0)>=(c[(c[g>>2]|0)+2324>>2]|0))break;c[z>>2]=d+((c[p>>2]|0)-(c[n>>2]|0)+2<<2);c[j>>2]=0;while(1){if((c[j>>2]|0)>=(c[(c[g>>2]|0)+2332>>2]|0))break;c[B>>2]=2;e=R(c[c[z>>2]>>2]>>16,b[c[D>>2]>>1]|0)|0;c[B>>2]=(c[B>>2]|0)+(e+((R(c[c[z>>2]>>2]&65535,b[c[D>>2]>>1]|0)|0)>>16));e=R(c[(c[z>>2]|0)+-4>>2]>>16,b[(c[D>>2]|0)+2>>1]|0)|0;c[B>>2]=(c[B>>2]|0)+(e+((R(c[(c[z>>2]|0)+-4>>2]&65535,b[(c[D>>2]|0)+2>>1]|0)|0)>>16));e=R(c[(c[z>>2]|0)+-8>>2]>>16,b[(c[D>>2]|0)+4>>1]|0)|0;c[B>>2]=(c[B>>2]|0)+(e+((R(c[(c[z>>2]|0)+-8>>2]&65535,b[(c[D>>2]|0)+4>>1]|0)|0)>>16));e=R(c[(c[z>>2]|0)+-12>>2]>>16,b[(c[D>>2]|0)+6>>1]|0)|0;c[B>>2]=(c[B>>2]|0)+(e+((R(c[(c[z>>2]|0)+-12>>2]&65535,b[(c[D>>2]|0)+6>>1]|0)|0)>>16));e=R(c[(c[z>>2]|0)+-16>>2]>>16,b[(c[D>>2]|0)+8>>1]|0)|0;c[B>>2]=(c[B>>2]|0)+(e+((R(c[(c[z>>2]|0)+-16>>2]&65535,b[(c[D>>2]|0)+8>>1]|0)|0)>>16));c[z>>2]=(c[z>>2]|0)+4;c[s>>2]=907633515+(R(c[s>>2]|0,196314165)|0);c[o>>2]=c[s>>2]>>25&127;e=R(c[(c[y>>2]|0)+(c[o>>2]<<2)>>2]>>16,b[C>>1]|0)|0;v=(c[B>>2]|0)+(e+((R(c[(c[y>>2]|0)+(c[o>>2]<<2)>>2]&65535,b[C>>1]|0)|0)>>16))<<2;c[d+(c[p>>2]<<2)>>2]=v;c[p>>2]=(c[p>>2]|0)+1;c[j>>2]=(c[j>>2]|0)+1}c[k>>2]=0;while(1){if((c[k>>2]|0)>=5)break;v=(R((c[t>>2]&65535)<<16>>16,b[(c[D>>2]|0)+(c[k>>2]<<1)>>1]|0)|0)>>15&65535;b[(c[D>>2]|0)+(c[k>>2]<<1)>>1]=v;c[k>>2]=(c[k>>2]|0)+1}b[C>>1]=(R(b[C>>1]|0,(c[u>>2]&65535)<<16>>16)|0)>>15;c[c[G>>2]>>2]=(c[c[G>>2]>>2]|0)+(((c[c[G>>2]>>2]>>16)*655|0)+((c[c[G>>2]>>2]&65535)*655>>16));v=_c(c[c[G>>2]>>2]|0,((c[(c[g>>2]|0)+2316>>2]&65535)<<16>>16)*18<<8)|0;c[c[G>>2]>>2]=v;c[n>>2]=(c[c[G>>2]>>2]>>7)+1>>1;c[m>>2]=(c[m>>2]|0)+1}c[E>>2]=d+((c[(c[g>>2]|0)+2336>>2]|0)-16<<2);L=c[E>>2]|0;d=(c[g>>2]|0)+1284|0;M=L+64|0;do{c[L>>2]=c[d>>2];L=L+4|0;d=d+4|0}while((L|0)<(M|0));c[j>>2]=0;while(1){O=c[g>>2]|0;if((c[j>>2]|0)>=(c[(c[g>>2]|0)+2328>>2]|0))break;c[A>>2]=c[O+2340>>2]>>1;m=R(c[(c[E>>2]|0)+(16+(c[j>>2]|0)-1<<2)>>2]>>16,b[F>>1]|0)|0;c[A>>2]=(c[A>>2]|0)+(m+((R(c[(c[E>>2]|0)+(16+(c[j>>2]|0)-1<<2)>>2]&65535,b[F>>1]|0)|0)>>16));m=R(c[(c[E>>2]|0)+(16+(c[j>>2]|0)-2<<2)>>2]>>16,b[F+2>>1]|0)|0;c[A>>2]=(c[A>>2]|0)+(m+((R(c[(c[E>>2]|0)+(16+(c[j>>2]|0)-2<<2)>>2]&65535,b[F+2>>1]|0)|0)>>16));m=R(c[(c[E>>2]|0)+(16+(c[j>>2]|0)-3<<2)>>2]>>16,b[F+4>>1]|0)|0;c[A>>2]=(c[A>>2]|0)+(m+((R(c[(c[E>>2]|0)+(16+(c[j>>2]|0)-3<<2)>>2]&65535,b[F+4>>1]|0)|0)>>16));m=R(c[(c[E>>2]|0)+(16+(c[j>>2]|0)-4<<2)>>2]>>16,b[F+6>>1]|0)|0;c[A>>2]=(c[A>>2]|0)+(m+((R(c[(c[E>>2]|0)+(16+(c[j>>2]|0)-4<<2)>>2]&65535,b[F+6>>1]|0)|0)>>16));m=R(c[(c[E>>2]|0)+(16+(c[j>>2]|0)-5<<2)>>2]>>16,b[F+8>>1]|0)|0;c[A>>2]=(c[A>>2]|0)+(m+((R(c[(c[E>>2]|0)+(16+(c[j>>2]|0)-5<<2)>>2]&65535,b[F+8>>1]|0)|0)>>16));m=R(c[(c[E>>2]|0)+(16+(c[j>>2]|0)-6<<2)>>2]>>16,b[F+10>>1]|0)|0;c[A>>2]=(c[A>>2]|0)+(m+((R(c[(c[E>>2]|0)+(16+(c[j>>2]|0)-6<<2)>>2]&65535,b[F+10>>1]|0)|0)>>16));m=R(c[(c[E>>2]|0)+(16+(c[j>>2]|0)-7<<2)>>2]>>16,b[F+12>>1]|0)|0;c[A>>2]=(c[A>>2]|0)+(m+((R(c[(c[E>>2]|0)+(16+(c[j>>2]|0)-7<<2)>>2]&65535,b[F+12>>1]|0)|0)>>16));m=R(c[(c[E>>2]|0)+(16+(c[j>>2]|0)-8<<2)>>2]>>16,b[F+14>>1]|0)|0;c[A>>2]=(c[A>>2]|0)+(m+((R(c[(c[E>>2]|0)+(16+(c[j>>2]|0)-8<<2)>>2]&65535,b[F+14>>1]|0)|0)>>16));m=R(c[(c[E>>2]|0)+(16+(c[j>>2]|0)-9<<2)>>2]>>16,b[F+16>>1]|0)|0;c[A>>2]=(c[A>>2]|0)+(m+((R(c[(c[E>>2]|0)+(16+(c[j>>2]|0)-9<<2)>>2]&65535,b[F+16>>1]|0)|0)>>16));m=R(c[(c[E>>2]|0)+(16+(c[j>>2]|0)-10<<2)>>2]>>16,b[F+18>>1]|0)|0;c[A>>2]=(c[A>>2]|0)+(m+((R(c[(c[E>>2]|0)+(16+(c[j>>2]|0)-10<<2)>>2]&65535,b[F+18>>1]|0)|0)>>16));c[k>>2]=10;while(1){if((c[k>>2]|0)>=(c[(c[g>>2]|0)+2340>>2]|0))break;m=R(c[(c[E>>2]|0)+(16+(c[j>>2]|0)-(c[k>>2]|0)-1<<2)>>2]>>16,b[F+(c[k>>2]<<1)>>1]|0)|0;c[A>>2]=(c[A>>2]|0)+(m+((R(c[(c[E>>2]|0)+(16+(c[j>>2]|0)-(c[k>>2]|0)-1<<2)>>2]&65535,b[F+(c[k>>2]<<1)>>1]|0)|0)>>16));c[k>>2]=(c[k>>2]|0)+1}c[(c[E>>2]|0)+(16+(c[j>>2]|0)<<2)>>2]=(c[(c[E>>2]|0)+(16+(c[j>>2]|0)<<2)>>2]|0)+(c[A>>2]<<4);m=R(c[(c[E>>2]|0)+(16+(c[j>>2]|0)<<2)>>2]>>16,(c[H+4>>2]&65535)<<16>>16)|0;u=m+((R(c[(c[E>>2]|0)+(16+(c[j>>2]|0)<<2)>>2]&65535,(c[H+4>>2]&65535)<<16>>16)|0)>>16)|0;if(((u+(R(c[(c[E>>2]|0)+(16+(c[j>>2]|0)<<2)>>2]|0,(c[H+4>>2]>>15)+1>>1)|0)>>7)+1>>1|0)<=32767){u=R(c[(c[E>>2]|0)+(16+(c[j>>2]|0)<<2)>>2]>>16,(c[H+4>>2]&65535)<<16>>16)|0;m=u+((R(c[(c[E>>2]|0)+(16+(c[j>>2]|0)<<2)>>2]&65535,(c[H+4>>2]&65535)<<16>>16)|0)>>16)|0;if(((m+(R(c[(c[E>>2]|0)+(16+(c[j>>2]|0)<<2)>>2]|0,(c[H+4>>2]>>15)+1>>1)|0)>>7)+1>>1|0)<-32768)P=-32768;else{m=R(c[(c[E>>2]|0)+(16+(c[j>>2]|0)<<2)>>2]>>16,(c[H+4>>2]&65535)<<16>>16)|0;u=m+((R(c[(c[E>>2]|0)+(16+(c[j>>2]|0)<<2)>>2]&65535,(c[H+4>>2]&65535)<<16>>16)|0)>>16)|0;P=(u+(R(c[(c[E>>2]|0)+(16+(c[j>>2]|0)<<2)>>2]|0,(c[H+4>>2]>>15)+1>>1)|0)>>7)+1>>1}}else P=32767;if((P|0)<=32767){u=R(c[(c[E>>2]|0)+(16+(c[j>>2]|0)<<2)>>2]>>16,(c[H+4>>2]&65535)<<16>>16)|0;m=u+((R(c[(c[E>>2]|0)+(16+(c[j>>2]|0)<<2)>>2]&65535,(c[H+4>>2]&65535)<<16>>16)|0)>>16)|0;if(((m+(R(c[(c[E>>2]|0)+(16+(c[j>>2]|0)<<2)>>2]|0,(c[H+4>>2]>>15)+1>>1)|0)>>7)+1>>1|0)<=32767){m=R(c[(c[E>>2]|0)+(16+(c[j>>2]|0)<<2)>>2]>>16,(c[H+4>>2]&65535)<<16>>16)|0;u=m+((R(c[(c[E>>2]|0)+(16+(c[j>>2]|0)<<2)>>2]&65535,(c[H+4>>2]&65535)<<16>>16)|0)>>16)|0;if(((u+(R(c[(c[E>>2]|0)+(16+(c[j>>2]|0)<<2)>>2]|0,(c[H+4>>2]>>15)+1>>1)|0)>>7)+1>>1|0)<-32768)Q=-32768;else{u=R(c[(c[E>>2]|0)+(16+(c[j>>2]|0)<<2)>>2]>>16,(c[H+4>>2]&65535)<<16>>16)|0;m=u+((R(c[(c[E>>2]|0)+(16+(c[j>>2]|0)<<2)>>2]&65535,(c[H+4>>2]&65535)<<16>>16)|0)>>16)|0;Q=(m+(R(c[(c[E>>2]|0)+(16+(c[j>>2]|0)<<2)>>2]|0,(c[H+4>>2]>>15)+1>>1)|0)>>7)+1>>1}}else Q=32767;if((Q|0)>=-32768){m=R(c[(c[E>>2]|0)+(16+(c[j>>2]|0)<<2)>>2]>>16,(c[H+4>>2]&65535)<<16>>16)|0;u=m+((R(c[(c[E>>2]|0)+(16+(c[j>>2]|0)<<2)>>2]&65535,(c[H+4>>2]&65535)<<16>>16)|0)>>16)|0;if(((u+(R(c[(c[E>>2]|0)+(16+(c[j>>2]|0)<<2)>>2]|0,(c[H+4>>2]>>15)+1>>1)|0)>>7)+1>>1|0)<=32767){u=R(c[(c[E>>2]|0)+(16+(c[j>>2]|0)<<2)>>2]>>16,(c[H+4>>2]&65535)<<16>>16)|0;m=u+((R(c[(c[E>>2]|0)+(16+(c[j>>2]|0)<<2)>>2]&65535,(c[H+4>>2]&65535)<<16>>16)|0)>>16)|0;if(((m+(R(c[(c[E>>2]|0)+(16+(c[j>>2]|0)<<2)>>2]|0,(c[H+4>>2]>>15)+1>>1)|0)>>7)+1>>1|0)<-32768)S=-32768;else{m=R(c[(c[E>>2]|0)+(16+(c[j>>2]|0)<<2)>>2]>>16,(c[H+4>>2]&65535)<<16>>16)|0;u=m+((R(c[(c[E>>2]|0)+(16+(c[j>>2]|0)<<2)>>2]&65535,(c[H+4>>2]&65535)<<16>>16)|0)>>16)|0;S=(u+(R(c[(c[E>>2]|0)+(16+(c[j>>2]|0)<<2)>>2]|0,(c[H+4>>2]>>15)+1>>1)|0)>>7)+1>>1}}else S=32767}else S=-32768}else S=32767;b[(c[i>>2]|0)+(c[j>>2]<<1)>>1]=S;c[j>>2]=(c[j>>2]|0)+1}L=O+1284|0;d=(c[E>>2]|0)+(c[(c[g>>2]|0)+2328>>2]<<2)|0;M=L+64|0;do{c[L>>2]=c[d>>2];L=L+4|0;d=d+4|0}while((L|0)<(M|0));c[(c[G>>2]|0)+52>>2]=c[s>>2];b[(c[G>>2]|0)+56>>1]=b[C>>1]|0;c[j>>2]=0;while(1){if((c[j>>2]|0)>=4)break;c[(c[h>>2]|0)+(c[j>>2]<<2)>>2]=c[n>>2];c[j>>2]=(c[j>>2]|0)+1}ga(c[I>>2]|0);l=f;return}function Uc(d,e){d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0;f=l;l=l+48|0;g=f+40|0;h=f+36|0;i=f+32|0;j=f+28|0;k=f+24|0;m=f+20|0;n=f+16|0;o=f+12|0;p=f+8|0;q=f+4|0;r=f;c[g>>2]=d;c[h>>2]=e;c[n>>2]=(c[g>>2]|0)+4168;c[(c[g>>2]|0)+4164>>2]=a[(c[g>>2]|0)+2736+29>>0];c[i>>2]=0;a:do if((a[(c[g>>2]|0)+2736+29>>0]|0)==2){c[m>>2]=0;while(1){e=R(c[m>>2]|0,c[(c[g>>2]|0)+2332>>2]|0)|0;if((e|0)>=(c[(c[h>>2]|0)+((c[(c[g>>2]|0)+2324>>2]|0)-1<<2)>>2]|0))break;if((c[m>>2]|0)==(c[(c[g>>2]|0)+2324>>2]|0))break;c[j>>2]=0;c[k>>2]=0;while(1){if((c[k>>2]|0)>=5)break;c[j>>2]=(c[j>>2]|0)+(b[(c[h>>2]|0)+96+((((c[(c[g>>2]|0)+2324>>2]|0)-1-(c[m>>2]|0)|0)*5|0)+(c[k>>2]|0)<<1)>>1]|0);c[k>>2]=(c[k>>2]|0)+1}if((c[j>>2]|0)>(c[i>>2]|0)){c[i>>2]=c[j>>2];e=(c[n>>2]|0)+4|0;d=(c[h>>2]|0)+96+((((c[(c[g>>2]|0)+2324>>2]|0)-1-(c[m>>2]|0)&65535)<<16>>16)*5<<1)|0;b[e>>1]=b[d>>1]|0;b[e+2>>1]=b[d+2>>1]|0;b[e+4>>1]=b[d+4>>1]|0;b[e+6>>1]=b[d+6>>1]|0;b[e+8>>1]=b[d+8>>1]|0;c[c[n>>2]>>2]=c[(c[h>>2]|0)+((c[(c[g>>2]|0)+2324>>2]|0)-1-(c[m>>2]|0)<<2)>>2]<<8}c[m>>2]=(c[m>>2]|0)+1}d=(c[n>>2]|0)+4|0;c[d>>2]=0;c[d+4>>2]=0;b[d+8>>1]=0;b[(c[n>>2]|0)+4+4>>1]=c[i>>2];if((c[i>>2]|0)<11469){c[p>>2]=11744256;c[o>>2]=(c[p>>2]|0)/(((c[i>>2]|0)>1?c[i>>2]|0:1)|0)|0;c[k>>2]=0;while(1){if((c[k>>2]|0)>=5)break a;d=(R(b[(c[n>>2]|0)+4+(c[k>>2]<<1)>>1]|0,(c[o>>2]&65535)<<16>>16)|0)>>10&65535;b[(c[n>>2]|0)+4+(c[k>>2]<<1)>>1]=d;c[k>>2]=(c[k>>2]|0)+1}}if((c[i>>2]|0)>15565){c[r>>2]=255016960;c[q>>2]=(c[r>>2]|0)/(((c[i>>2]|0)>1?c[i>>2]|0:1)|0)|0;c[k>>2]=0;while(1){if((c[k>>2]|0)>=5)break a;d=(R(b[(c[n>>2]|0)+4+(c[k>>2]<<1)>>1]|0,(c[q>>2]&65535)<<16>>16)|0)>>14&65535;b[(c[n>>2]|0)+4+(c[k>>2]<<1)>>1]=d;c[k>>2]=(c[k>>2]|0)+1}}}else{c[c[n>>2]>>2]=((c[(c[g>>2]|0)+2316>>2]&65535)<<16>>16)*18<<8;d=(c[n>>2]|0)+4|0;c[d>>2]=0;c[d+4>>2]=0;b[d+8>>1]=0}while(0);Ie((c[n>>2]|0)+14|0,(c[h>>2]|0)+32+32|0,c[(c[g>>2]|0)+2340>>2]<<1|0)|0;b[(c[n>>2]|0)+68>>1]=c[(c[h>>2]|0)+136>>2];k=(c[n>>2]|0)+72|0;q=(c[h>>2]|0)+16+((c[(c[g>>2]|0)+2324>>2]|0)-2<<2)|0;c[k>>2]=c[q>>2];c[k+4>>2]=c[q+4>>2];c[(c[n>>2]|0)+88>>2]=c[(c[g>>2]|0)+2332>>2];c[(c[n>>2]|0)+84>>2]=c[(c[g>>2]|0)+2324>>2];l=f;return}function Vc(a,d,e,f,g,h,i,j){a=a|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;var k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0;k=l;l=l+48|0;m=k+44|0;n=k+40|0;o=k+36|0;p=k+32|0;q=k+28|0;r=k+24|0;s=k+20|0;t=k+16|0;u=k+12|0;v=k+8|0;w=k+4|0;x=k;c[m>>2]=a;c[n>>2]=d;c[o>>2]=e;c[p>>2]=f;c[q>>2]=g;c[r>>2]=h;c[s>>2]=i;c[t>>2]=j;j=c[s>>2]<<1;c[x>>2]=da()|0;i=l;l=l+((1*(j<<1)|0)+15&-16)|0;c[w>>2]=i;c[v>>2]=0;while(1){if((c[v>>2]|0)>=2)break;c[u>>2]=0;while(1){if((c[u>>2]|0)>=(c[s>>2]|0))break;j=c[(c[q>>2]|0)+((c[u>>2]|0)+(R((c[v>>2]|0)+(c[t>>2]|0)-2|0,c[s>>2]|0)|0)<<2)>>2]>>16;h=R(j,(c[(c[r>>2]|0)+(c[v>>2]<<2)>>2]&65535)<<16>>16)|0;j=c[(c[q>>2]|0)+((c[u>>2]|0)+(R((c[v>>2]|0)+(c[t>>2]|0)-2|0,c[s>>2]|0)|0)<<2)>>2]&65535;g=h+((R(j,(c[(c[r>>2]|0)+(c[v>>2]<<2)>>2]&65535)<<16>>16)|0)>>16)|0;j=c[(c[q>>2]|0)+((c[u>>2]|0)+(R((c[v>>2]|0)+(c[t>>2]|0)-2|0,c[s>>2]|0)|0)<<2)>>2]|0;if((g+(R(j,(c[(c[r>>2]|0)+(c[v>>2]<<2)>>2]>>15)+1>>1)|0)>>8|0)<=32767){j=c[(c[q>>2]|0)+((c[u>>2]|0)+(R((c[v>>2]|0)+(c[t>>2]|0)-2|0,c[s>>2]|0)|0)<<2)>>2]>>16;g=R(j,(c[(c[r>>2]|0)+(c[v>>2]<<2)>>2]&65535)<<16>>16)|0;j=c[(c[q>>2]|0)+((c[u>>2]|0)+(R((c[v>>2]|0)+(c[t>>2]|0)-2|0,c[s>>2]|0)|0)<<2)>>2]&65535;h=g+((R(j,(c[(c[r>>2]|0)+(c[v>>2]<<2)>>2]&65535)<<16>>16)|0)>>16)|0;j=c[(c[q>>2]|0)+((c[u>>2]|0)+(R((c[v>>2]|0)+(c[t>>2]|0)-2|0,c[s>>2]|0)|0)<<2)>>2]|0;if((h+(R(j,(c[(c[r>>2]|0)+(c[v>>2]<<2)>>2]>>15)+1>>1)|0)>>8|0)<-32768)y=-32768;else{j=c[(c[q>>2]|0)+((c[u>>2]|0)+(R((c[v>>2]|0)+(c[t>>2]|0)-2|0,c[s>>2]|0)|0)<<2)>>2]>>16;h=R(j,(c[(c[r>>2]|0)+(c[v>>2]<<2)>>2]&65535)<<16>>16)|0;j=c[(c[q>>2]|0)+((c[u>>2]|0)+(R((c[v>>2]|0)+(c[t>>2]|0)-2|0,c[s>>2]|0)|0)<<2)>>2]&65535;g=h+((R(j,(c[(c[r>>2]|0)+(c[v>>2]<<2)>>2]&65535)<<16>>16)|0)>>16)|0;j=c[(c[q>>2]|0)+((c[u>>2]|0)+(R((c[v>>2]|0)+(c[t>>2]|0)-2|0,c[s>>2]|0)|0)<<2)>>2]|0;y=g+(R(j,(c[(c[r>>2]|0)+(c[v>>2]<<2)>>2]>>15)+1>>1)|0)>>8}}else y=32767;b[(c[w>>2]|0)+(c[u>>2]<<1)>>1]=y;c[u>>2]=(c[u>>2]|0)+1}c[w>>2]=(c[w>>2]|0)+(c[s>>2]<<1);c[v>>2]=(c[v>>2]|0)+1}Nc(c[m>>2]|0,c[n>>2]|0,i,c[s>>2]|0);Nc(c[o>>2]|0,c[p>>2]|0,i+(c[s>>2]<<1)|0,c[s>>2]|0);ga(c[x>>2]|0);l=k;return}function Wc(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=l;l=l+16|0;e=d+4|0;f=d;c[e>>2]=a;c[f>>2]=b;l=d;return ((c[e>>2]|0)>(c[f>>2]|0)?c[e>>2]|0:c[f>>2]|0)|0}function Xc(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=l;l=l+16|0;e=d+4|0;f=d;c[e>>2]=a;c[f>>2]=b;l=d;return ((c[e>>2]|0)<(c[f>>2]|0)?c[e>>2]|0:c[f>>2]|0)|0}function Yc(a,d,e){a=a|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0;f=l;l=l+32|0;g=f+16|0;h=f+12|0;i=f+8|0;j=f+4|0;k=f;c[g>>2]=a;c[h>>2]=d;c[i>>2]=e;c[k>>2]=(c[i>>2]|0)-65536;c[j>>2]=0;while(1){m=c[i>>2]|0;n=c[g>>2]|0;if((c[j>>2]|0)>=((c[h>>2]|0)-1|0))break;e=((R(m,b[n+(c[j>>2]<<1)>>1]|0)|0)>>15)+1>>1&65535;b[(c[g>>2]|0)+(c[j>>2]<<1)>>1]=e;e=((R(c[i>>2]|0,c[k>>2]|0)|0)>>15)+1>>1;c[i>>2]=(c[i>>2]|0)+e;c[j>>2]=(c[j>>2]|0)+1}j=((R(m,b[n+((c[h>>2]|0)-1<<1)>>1]|0)|0)>>15)+1>>1&65535;b[(c[g>>2]|0)+((c[h>>2]|0)-1<<1)>>1]=j;l=f;return}function Zc(a,c){a=a|0;c=c|0;var d=0,e=0,f=0;d=l;l=l+16|0;e=d+2|0;f=d;b[e>>1]=a;b[f>>1]=c;l=d;return ((b[e>>1]|0)>(b[f>>1]|0)?b[e>>1]|0:b[f>>1]|0)&65535|0}function _c(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=l;l=l+16|0;e=d+4|0;f=d;c[e>>2]=a;c[f>>2]=b;l=d;return ((c[e>>2]|0)<(c[f>>2]|0)?c[e>>2]|0:c[f>>2]|0)|0}function $c(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0;d=l;l=l+48|0;e=d+32|0;f=d+28|0;g=d+24|0;h=d+20|0;i=d+16|0;j=d+12|0;k=d+8|0;m=d+4|0;n=d;c[f>>2]=a;c[g>>2]=b;b=c[f>>2]|0;c[h>>2]=(Oc((c[f>>2]|0)>0?b:0-b|0)|0)-1;c[k>>2]=c[f>>2]<<c[h>>2];c[j>>2]=536870911/(c[k>>2]>>16|0)|0;c[n>>2]=c[j>>2]<<16;f=R(c[k>>2]>>16,(c[j>>2]&65535)<<16>>16)|0;c[m>>2]=536870912-(f+((R(c[k>>2]&65535,(c[j>>2]&65535)<<16>>16)|0)>>16))<<3;k=R(c[m>>2]>>16,(c[j>>2]&65535)<<16>>16)|0;f=(c[n>>2]|0)+(k+((R(c[m>>2]&65535,(c[j>>2]&65535)<<16>>16)|0)>>16))|0;c[n>>2]=f+(R(c[m>>2]|0,(c[j>>2]>>15)+1>>1)|0);c[i>>2]=61-(c[h>>2]|0)-(c[g>>2]|0);g=c[i>>2]|0;if((c[i>>2]|0)>0)if((g|0)<32){c[e>>2]=c[n>>2]>>c[i>>2];o=c[e>>2]|0;l=d;return o|0}else{c[e>>2]=0;o=c[e>>2]|0;l=d;return o|0}h=c[n>>2]|0;j=0-(c[i>>2]|0)|0;do if((-2147483648>>0-g|0)>(2147483647>>0-(c[i>>2]|0)|0)){if((h|0)>(-2147483648>>j|0)){p=-2147483648>>0-(c[i>>2]|0);break}if((c[n>>2]|0)<(2147483647>>0-(c[i>>2]|0)|0)){p=2147483647>>0-(c[i>>2]|0);break}else{p=c[n>>2]|0;break}}else{if((h|0)>(2147483647>>j|0)){p=2147483647>>0-(c[i>>2]|0);break}if((c[n>>2]|0)<(-2147483648>>0-(c[i>>2]|0)|0)){p=-2147483648>>0-(c[i>>2]|0);break}else{p=c[n>>2]|0;break}}while(0);c[e>>2]=p<<0-(c[i>>2]|0);o=c[e>>2]|0;l=d;return o|0}function ad(b,d,e,f,g){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;h=l;l=l+32|0;i=h+28|0;j=h+24|0;k=h+20|0;m=h+16|0;n=h+12|0;o=h+8|0;p=h+4|0;q=h;c[i>>2]=b;c[j>>2]=d;c[k>>2]=e;c[m>>2]=f;c[n>>2]=g;c[o>>2]=0;while(1){if((c[o>>2]|0)>=(c[n>>2]|0))break;g=a[(c[j>>2]|0)+(c[o>>2]|0)>>0]|0;if((c[o>>2]|0)==0&(c[m>>2]|0)==0){f=(qd(g,(a[c[k>>2]>>0]|0)-16|0)|0)&255;a[c[k>>2]>>0]=f}else{c[p>>2]=g+-4;c[q>>2]=8+(a[c[k>>2]>>0]|0);g=c[p>>2]|0;if((c[p>>2]|0)>(c[q>>2]|0)){r=(g<<1)-(c[q>>2]|0)|0;s=c[k>>2]|0}else{r=g;s=c[k>>2]|0}a[s>>0]=(a[s>>0]|0)+r}if((a[c[k>>2]>>0]|0)<=63)if((a[c[k>>2]>>0]|0)<0)t=0;else t=a[c[k>>2]>>0]|0;else t=63;a[c[k>>2]>>0]=t;g=sd(rd(((a[c[k>>2]>>0]<<16>>16)*29|0)+((a[c[k>>2]>>0]<<16>>16)*7281>>16)+2090|0,3967)|0)|0;c[(c[i>>2]|0)+(c[o>>2]<<2)>>2]=g;c[o>>2]=(c[o>>2]|0)+1}l=h;return}function bd(e,f,g){e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0;h=l;l=l+144|0;i=h+24|0;j=h+20|0;k=h+16|0;m=h+12|0;n=h+128|0;o=h+96|0;p=h+64|0;q=h+32|0;r=h+8|0;s=h+4|0;t=h;c[i>>2]=e;c[j>>2]=f;c[k>>2]=g;c[t>>2]=(c[(c[k>>2]|0)+8>>2]|0)+(R(a[c[j>>2]>>0]|0,b[(c[k>>2]|0)+2>>1]|0)|0);c[m>>2]=0;while(1){if((c[m>>2]|0)>=(b[(c[k>>2]|0)+2>>1]|0))break;b[(c[i>>2]|0)+(c[m>>2]<<1)>>1]=d[(c[t>>2]|0)+(c[m>>2]|0)>>0]<<7;c[m>>2]=(c[m>>2]|0)+1}dd(o,n,c[k>>2]|0,a[c[j>>2]>>0]|0);ed(p,(c[j>>2]|0)+1|0,n,b[(c[k>>2]|0)+4>>1]|0,b[(c[k>>2]|0)+2>>1]|0);fd(q,c[i>>2]|0,b[(c[k>>2]|0)+2>>1]|0);c[m>>2]=0;while(1){if((c[m>>2]|0)>=(b[(c[k>>2]|0)+2>>1]|0))break;c[r>>2]=gd(b[q+(c[m>>2]<<1)>>1]<<16)|0;c[s>>2]=(b[(c[i>>2]|0)+(c[m>>2]<<1)>>1]|0)+((b[p+(c[m>>2]<<1)>>1]<<14|0)/(c[r>>2]|0)|0);if((c[s>>2]|0)>32767)u=32767;else u=(c[s>>2]|0)<0?0:c[s>>2]|0;b[(c[i>>2]|0)+(c[m>>2]<<1)>>1]=u;c[m>>2]=(c[m>>2]|0)+1}hd(c[i>>2]|0,c[(c[k>>2]|0)+32>>2]|0,b[(c[k>>2]|0)+2>>1]|0);l=h;return}
function cd(d,e,f,g,h){d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0;i=l;l=l+48|0;j=i+36|0;k=i+38|0;m=i+32|0;n=i+28|0;o=i+24|0;p=i+20|0;q=i+16|0;r=i+12|0;s=i+8|0;t=i+4|0;u=i;b[j>>1]=d;a[k>>0]=e;c[m>>2]=f;c[n>>2]=g;c[o>>2]=h;h=(c[o>>2]|0)==4;do if((c[n>>2]|0)==8)if(h){c[u>>2]=23768;c[t>>2]=11;break}else{c[u>>2]=23738;c[t>>2]=3;break}else if(h){c[u>>2]=23812;c[t>>2]=34;break}else{c[u>>2]=23744;c[t>>2]=12;break}while(0);c[r>>2]=(c[n>>2]&65535)<<16>>16<<1;c[s>>2]=((c[n>>2]&65535)<<16>>16)*18;c[p>>2]=(c[r>>2]|0)+(b[j>>1]|0);c[q>>2]=0;while(1){if((c[q>>2]|0)>=(c[o>>2]|0))break;j=R(c[q>>2]|0,c[t>>2]|0)|0;c[(c[m>>2]|0)+(c[q>>2]<<2)>>2]=(c[p>>2]|0)+(a[(c[u>>2]|0)+(j+(a[k>>0]|0))>>0]|0);j=c[(c[m>>2]|0)+(c[q>>2]<<2)>>2]|0;do if((c[r>>2]|0)>(c[s>>2]|0)){if((j|0)>(c[r>>2]|0)){v=c[r>>2]|0;break}if((c[(c[m>>2]|0)+(c[q>>2]<<2)>>2]|0)<(c[s>>2]|0)){v=c[s>>2]|0;break}else{v=c[(c[m>>2]|0)+(c[q>>2]<<2)>>2]|0;break}}else{if((j|0)>(c[s>>2]|0)){v=c[s>>2]|0;break}if((c[(c[m>>2]|0)+(c[q>>2]<<2)>>2]|0)<(c[r>>2]|0)){v=c[r>>2]|0;break}else{v=c[(c[m>>2]|0)+(c[q>>2]<<2)>>2]|0;break}}while(0);c[(c[m>>2]|0)+(c[q>>2]<<2)>>2]=v;c[q>>2]=(c[q>>2]|0)+1}l=i;return}function dd(e,f,g,h){e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0;i=l;l=l+32|0;j=i+20|0;k=i+16|0;m=i+12|0;n=i+8|0;o=i+4|0;p=i+24|0;q=i;c[j>>2]=e;c[k>>2]=f;c[m>>2]=g;c[n>>2]=h;c[q>>2]=(c[(c[m>>2]|0)+20>>2]|0)+((R(c[n>>2]|0,b[(c[m>>2]|0)+2>>1]|0)|0)/2|0);c[o>>2]=0;while(1){if((c[o>>2]|0)>=(b[(c[m>>2]|0)+2>>1]|0))break;n=c[q>>2]|0;c[q>>2]=n+1;a[p>>0]=a[n>>0]|0;b[(c[j>>2]|0)+(c[o>>2]<<1)>>1]=((d[p>>0]>>1&7)<<16>>16)*9;n=a[(c[(c[m>>2]|0)+16>>2]|0)+((c[o>>2]|0)+(R(d[p>>0]&1,(b[(c[m>>2]|0)+2>>1]|0)-1|0)|0))>>0]|0;a[(c[k>>2]|0)+(c[o>>2]|0)>>0]=n;b[(c[j>>2]|0)+((c[o>>2]|0)+1<<1)>>1]=((d[p>>0]>>5&7)<<16>>16)*9;n=a[(c[(c[m>>2]|0)+16>>2]|0)+((c[o>>2]|0)+(R(d[p>>0]>>4&1,(b[(c[m>>2]|0)+2>>1]|0)-1|0)|0)+1)>>0]|0;a[(c[k>>2]|0)+((c[o>>2]|0)+1)>>0]=n;c[o>>2]=(c[o>>2]|0)+2}l=i;return}function ed(e,f,g,h,i){e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;var j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;j=l;l=l+32|0;k=j+24|0;m=j+20|0;n=j+16|0;o=j+12|0;p=j+28|0;q=j+8|0;r=j+4|0;s=j;c[k>>2]=e;c[m>>2]=f;c[n>>2]=g;c[o>>2]=h;b[p>>1]=i;c[r>>2]=0;c[q>>2]=(b[p>>1]|0)-1;while(1){if((c[q>>2]|0)<0)break;c[s>>2]=(R((c[r>>2]&65535)<<16>>16,d[(c[n>>2]|0)+(c[q>>2]|0)>>0]|0)|0)>>8;c[r>>2]=a[(c[m>>2]|0)+(c[q>>2]|0)>>0]<<10;p=c[r>>2]|0;if((c[r>>2]|0)<=0){if((p|0)<0)c[r>>2]=(c[r>>2]|0)+102}else c[r>>2]=p-102;p=R(c[r>>2]>>16,(c[o>>2]&65535)<<16>>16)|0;c[r>>2]=(c[s>>2]|0)+(p+((R(c[r>>2]&65535,(c[o>>2]&65535)<<16>>16)|0)>>16));b[(c[k>>2]|0)+(c[q>>2]<<1)>>1]=c[r>>2];c[q>>2]=(c[q>>2]|0)+-1}l=j;return}function fd(a,d,e){a=a|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0;f=l;l=l+32|0;g=f+20|0;h=f+16|0;i=f+12|0;j=f+8|0;k=f+4|0;m=f;c[g>>2]=a;c[h>>2]=d;c[i>>2]=e;c[k>>2]=od(b[c[h>>2]>>1]|0,1)|0;c[k>>2]=131072/(c[k>>2]|0)|0;c[m>>2]=od((b[(c[h>>2]|0)+2>>1]|0)-(b[c[h>>2]>>1]|0)|0,1)|0;c[m>>2]=131072/(c[m>>2]|0)|0;e=(pd((c[k>>2]|0)+(c[m>>2]|0)|0,32767)|0)&65535;b[c[g>>2]>>1]=e;c[j>>2]=1;while(1){n=c[h>>2]|0;if((c[j>>2]|0)>=((c[i>>2]|0)-1|0))break;c[k>>2]=od((b[n+((c[j>>2]|0)+1<<1)>>1]|0)-(b[(c[h>>2]|0)+(c[j>>2]<<1)>>1]|0)|0,1)|0;c[k>>2]=131072/(c[k>>2]|0)|0;e=(pd((c[k>>2]|0)+(c[m>>2]|0)|0,32767)|0)&65535;b[(c[g>>2]|0)+(c[j>>2]<<1)>>1]=e;c[m>>2]=od((b[(c[h>>2]|0)+((c[j>>2]|0)+2<<1)>>1]|0)-(b[(c[h>>2]|0)+((c[j>>2]|0)+1<<1)>>1]|0)|0,1)|0;c[m>>2]=131072/(c[m>>2]|0)|0;e=(pd((c[k>>2]|0)+(c[m>>2]|0)|0,32767)|0)&65535;b[(c[g>>2]|0)+((c[j>>2]|0)+1<<1)>>1]=e;c[j>>2]=(c[j>>2]|0)+2}c[k>>2]=od(32768-(b[n+((c[i>>2]|0)-1<<1)>>1]|0)|0,1)|0;c[k>>2]=131072/(c[k>>2]|0)|0;n=(pd((c[k>>2]|0)+(c[m>>2]|0)|0,32767)|0)&65535;b[(c[g>>2]|0)+((c[i>>2]|0)-1<<1)>>1]=n;l=f;return}function gd(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,i=0;b=l;l=l+32|0;d=b+16|0;e=b+12|0;f=b+8|0;g=b+4|0;h=b;c[e>>2]=a;if((c[e>>2]|0)<=0){c[d>>2]=0;i=c[d>>2]|0;l=b;return i|0}ld(c[e>>2]|0,g,h);if(c[g>>2]&1|0)c[f>>2]=32768;else c[f>>2]=46214;c[f>>2]=c[f>>2]>>(c[g>>2]>>1);g=R(c[f>>2]>>16,(((c[h>>2]&65535)<<16>>16)*213&65535)<<16>>16)|0;c[f>>2]=(c[f>>2]|0)+(g+((R(c[f>>2]&65535,(((c[h>>2]&65535)<<16>>16)*213&65535)<<16>>16)|0)>>16));c[d>>2]=c[f>>2];i=c[d>>2]|0;l=b;return i|0}function hd(a,d,e){a=a|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0;f=l;l=l+48|0;g=f+40|0;h=f+36|0;i=f+32|0;j=f+28|0;k=f+24|0;m=f+20|0;n=f+16|0;o=f+44|0;p=f+12|0;q=f+8|0;r=f+4|0;s=f;c[g>>2]=a;c[h>>2]=d;c[i>>2]=e;c[k>>2]=0;c[n>>2]=0;while(1){if((c[n>>2]|0)>=20)break;c[q>>2]=(b[c[g>>2]>>1]|0)-(b[c[h>>2]>>1]|0);c[k>>2]=0;c[j>>2]=1;while(1){t=c[g>>2]|0;if((c[j>>2]|0)>((c[i>>2]|0)-1|0))break;c[p>>2]=(b[t+(c[j>>2]<<1)>>1]|0)-((b[(c[g>>2]|0)+((c[j>>2]|0)-1<<1)>>1]|0)+(b[(c[h>>2]|0)+(c[j>>2]<<1)>>1]|0));if((c[p>>2]|0)<(c[q>>2]|0)){c[q>>2]=c[p>>2];c[k>>2]=c[j>>2]}c[j>>2]=(c[j>>2]|0)+1}c[p>>2]=32768-((b[t+((c[i>>2]|0)-1<<1)>>1]|0)+(b[(c[h>>2]|0)+(c[i>>2]<<1)>>1]|0));if((c[p>>2]|0)<(c[q>>2]|0)){c[q>>2]=c[p>>2];c[k>>2]=c[i>>2]}if((c[q>>2]|0)>=0){u=42;break}if(!(c[k>>2]|0))b[c[g>>2]>>1]=b[c[h>>2]>>1]|0;else{if((c[k>>2]|0)==(c[i>>2]|0)){v=(c[g>>2]|0)+((c[i>>2]|0)-1<<1)|0;w=32768-(b[(c[h>>2]|0)+(c[i>>2]<<1)>>1]|0)&65535}else{c[r>>2]=0;c[m>>2]=0;while(1){x=c[h>>2]|0;if((c[m>>2]|0)>=(c[k>>2]|0))break;c[r>>2]=(c[r>>2]|0)+(b[x+(c[m>>2]<<1)>>1]|0);c[m>>2]=(c[m>>2]|0)+1}c[r>>2]=(c[r>>2]|0)+(b[x+(c[k>>2]<<1)>>1]>>1);c[s>>2]=32768;c[m>>2]=c[i>>2];while(1){y=c[h>>2]|0;if((c[m>>2]|0)<=(c[k>>2]|0))break;c[s>>2]=(c[s>>2]|0)-(b[y+(c[m>>2]<<1)>>1]|0);c[m>>2]=(c[m>>2]|0)+-1}c[s>>2]=(c[s>>2]|0)-(b[y+(c[k>>2]<<1)>>1]>>1);e=((b[(c[g>>2]|0)+((c[k>>2]|0)-1<<1)>>1]|0)+(b[(c[g>>2]|0)+(c[k>>2]<<1)>>1]|0)>>1)+((b[(c[g>>2]|0)+((c[k>>2]|0)-1<<1)>>1]|0)+(b[(c[g>>2]|0)+(c[k>>2]<<1)>>1]|0)&1)|0;do if((c[r>>2]|0)>(c[s>>2]|0)){if((e|0)>(c[r>>2]|0)){z=c[r>>2]|0;break}if((((b[(c[g>>2]|0)+((c[k>>2]|0)-1<<1)>>1]|0)+(b[(c[g>>2]|0)+(c[k>>2]<<1)>>1]|0)>>1)+((b[(c[g>>2]|0)+((c[k>>2]|0)-1<<1)>>1]|0)+(b[(c[g>>2]|0)+(c[k>>2]<<1)>>1]|0)&1)|0)<(c[s>>2]|0)){z=c[s>>2]|0;break}else{z=((b[(c[g>>2]|0)+((c[k>>2]|0)-1<<1)>>1]|0)+(b[(c[g>>2]|0)+(c[k>>2]<<1)>>1]|0)>>1)+((b[(c[g>>2]|0)+((c[k>>2]|0)-1<<1)>>1]|0)+(b[(c[g>>2]|0)+(c[k>>2]<<1)>>1]|0)&1)|0;break}}else{if((e|0)>(c[s>>2]|0)){z=c[s>>2]|0;break}if((((b[(c[g>>2]|0)+((c[k>>2]|0)-1<<1)>>1]|0)+(b[(c[g>>2]|0)+(c[k>>2]<<1)>>1]|0)>>1)+((b[(c[g>>2]|0)+((c[k>>2]|0)-1<<1)>>1]|0)+(b[(c[g>>2]|0)+(c[k>>2]<<1)>>1]|0)&1)|0)<(c[r>>2]|0)){z=c[r>>2]|0;break}else{z=((b[(c[g>>2]|0)+((c[k>>2]|0)-1<<1)>>1]|0)+(b[(c[g>>2]|0)+(c[k>>2]<<1)>>1]|0)>>1)+((b[(c[g>>2]|0)+((c[k>>2]|0)-1<<1)>>1]|0)+(b[(c[g>>2]|0)+(c[k>>2]<<1)>>1]|0)&1)|0;break}}while(0);b[o>>1]=z;b[(c[g>>2]|0)+((c[k>>2]|0)-1<<1)>>1]=(b[o>>1]|0)-(b[(c[h>>2]|0)+(c[k>>2]<<1)>>1]>>1);v=(c[g>>2]|0)+(c[k>>2]<<1)|0;w=(b[(c[g>>2]|0)+((c[k>>2]|0)-1<<1)>>1]|0)+(b[(c[h>>2]|0)+(c[k>>2]<<1)>>1]|0)&65535}b[v>>1]=w}c[n>>2]=(c[n>>2]|0)+1}if((u|0)==42){l=f;return}if((c[n>>2]|0)!=20){l=f;return}id(c[g>>2]|0,c[i>>2]|0);n=(jd(b[c[g>>2]>>1]|0,b[c[h>>2]>>1]|0)|0)&65535;b[c[g>>2]>>1]=n;c[j>>2]=1;while(1){A=c[g>>2]|0;if((c[j>>2]|0)>=(c[i>>2]|0))break;n=(jd(b[A+(c[j>>2]<<1)>>1]|0,(b[(c[g>>2]|0)+((c[j>>2]|0)-1<<1)>>1]|0)+(b[(c[h>>2]|0)+(c[j>>2]<<1)>>1]|0)|0)|0)&65535;b[(c[g>>2]|0)+(c[j>>2]<<1)>>1]=n;c[j>>2]=(c[j>>2]|0)+1}n=(kd(b[A+((c[i>>2]|0)-1<<1)>>1]|0,32768-(b[(c[h>>2]|0)+(c[i>>2]<<1)>>1]|0)|0)|0)&65535;b[(c[g>>2]|0)+((c[i>>2]|0)-1<<1)>>1]=n;c[j>>2]=(c[i>>2]|0)-2;while(1){if((c[j>>2]|0)<0)break;i=(kd(b[(c[g>>2]|0)+(c[j>>2]<<1)>>1]|0,(b[(c[g>>2]|0)+((c[j>>2]|0)+1<<1)>>1]|0)-(b[(c[h>>2]|0)+((c[j>>2]|0)+1<<1)>>1]|0)|0)|0)&65535;b[(c[g>>2]|0)+(c[j>>2]<<1)>>1]=i;c[j>>2]=(c[j>>2]|0)+-1}l=f;return}function id(a,d){a=a|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0;e=l;l=l+32|0;f=e+16|0;g=e+12|0;h=e+8|0;i=e+4|0;j=e;c[f>>2]=a;c[g>>2]=d;c[i>>2]=1;while(1){if((c[i>>2]|0)>=(c[g>>2]|0))break;c[h>>2]=b[(c[f>>2]|0)+(c[i>>2]<<1)>>1];c[j>>2]=(c[i>>2]|0)-1;while(1){if((c[j>>2]|0)<0)break;if((c[h>>2]|0)>=(b[(c[f>>2]|0)+(c[j>>2]<<1)>>1]|0))break;b[(c[f>>2]|0)+((c[j>>2]|0)+1<<1)>>1]=b[(c[f>>2]|0)+(c[j>>2]<<1)>>1]|0;c[j>>2]=(c[j>>2]|0)+-1}b[(c[f>>2]|0)+((c[j>>2]|0)+1<<1)>>1]=c[h>>2];c[i>>2]=(c[i>>2]|0)+1}l=e;return}function jd(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=l;l=l+16|0;e=d+4|0;f=d;c[e>>2]=a;c[f>>2]=b;l=d;return ((c[e>>2]|0)>(c[f>>2]|0)?c[e>>2]|0:c[f>>2]|0)|0}function kd(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=l;l=l+16|0;e=d+4|0;f=d;c[e>>2]=a;c[f>>2]=b;l=d;return ((c[e>>2]|0)<(c[f>>2]|0)?c[e>>2]|0:c[f>>2]|0)|0}function ld(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0;e=l;l=l+16|0;f=e+12|0;g=e+8|0;h=e+4|0;i=e;c[f>>2]=a;c[g>>2]=b;c[h>>2]=d;c[i>>2]=md(c[f>>2]|0)|0;c[c[g>>2]>>2]=c[i>>2];g=(nd(c[f>>2]|0,24-(c[i>>2]|0)|0)|0)&127;c[c[h>>2]>>2]=g;l=e;return}function md(a){a=a|0;var b=0,d=0,e=0;b=l;l=l+16|0;d=b;c[d>>2]=a;if(!(c[d>>2]|0)){e=32;l=b;return e|0}e=32-(32-(U(c[d>>2]|0)|0))|0;l=b;return e|0}function nd(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;d=l;l=l+32|0;e=d+20|0;f=d+16|0;g=d+12|0;h=d+8|0;i=d+4|0;j=d;c[f>>2]=a;c[g>>2]=b;c[h>>2]=c[f>>2];c[i>>2]=c[g>>2];c[j>>2]=0-(c[g>>2]|0);if(!(c[g>>2]|0)){c[e>>2]=c[f>>2];k=c[e>>2]|0;l=d;return k|0}f=c[h>>2]|0;if((c[g>>2]|0)<0){c[e>>2]=f<<c[j>>2]|(c[h>>2]|0)>>>(32-(c[j>>2]|0)|0);k=c[e>>2]|0;l=d;return k|0}else{c[e>>2]=f<<32-(c[i>>2]|0)|(c[h>>2]|0)>>>(c[i>>2]|0);k=c[e>>2]|0;l=d;return k|0}return 0}function od(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=l;l=l+16|0;e=d+4|0;f=d;c[e>>2]=a;c[f>>2]=b;l=d;return ((c[e>>2]|0)>(c[f>>2]|0)?c[e>>2]|0:c[f>>2]|0)|0}function pd(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=l;l=l+16|0;e=d+4|0;f=d;c[e>>2]=a;c[f>>2]=b;l=d;return ((c[e>>2]|0)<(c[f>>2]|0)?c[e>>2]|0:c[f>>2]|0)|0}function qd(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=l;l=l+16|0;e=d+4|0;f=d;c[e>>2]=a;c[f>>2]=b;l=d;return ((c[e>>2]|0)>(c[f>>2]|0)?c[e>>2]|0:c[f>>2]|0)|0}function rd(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=l;l=l+16|0;e=d+4|0;f=d;c[e>>2]=a;c[f>>2]=b;l=d;return ((c[e>>2]|0)<(c[f>>2]|0)?c[e>>2]|0:c[f>>2]|0)|0}function sd(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,i=0;b=l;l=l+16|0;d=b+12|0;e=b+8|0;f=b+4|0;g=b;c[e>>2]=a;if((c[e>>2]|0)<0){c[d>>2]=0;h=c[d>>2]|0;l=b;return h|0}if((c[e>>2]|0)>=3967){c[d>>2]=2147483647;h=c[d>>2]|0;l=b;return h|0}c[f>>2]=1<<(c[e>>2]>>7);c[g>>2]=c[e>>2]&127;a=c[f>>2]|0;i=c[f>>2]|0;if((c[e>>2]|0)<2048){e=R((R((c[g>>2]&65535)<<16>>16,(128-(c[g>>2]|0)&65535)<<16>>16)|0)>>16,-174)|0;c[f>>2]=a+((R(i,(c[g>>2]|0)+(e+((R((R((c[g>>2]&65535)<<16>>16,(128-(c[g>>2]|0)&65535)<<16>>16)|0)&65535,-174)|0)>>16))|0)|0)>>7)}else{e=R((R((c[g>>2]&65535)<<16>>16,(128-(c[g>>2]|0)&65535)<<16>>16)|0)>>16,-174)|0;c[f>>2]=a+(R(i>>7,(c[g>>2]|0)+(e+((R((R((c[g>>2]&65535)<<16>>16,(128-(c[g>>2]|0)&65535)<<16>>16)|0)&65535,-174)|0)>>16))|0)|0)}c[d>>2]=c[f>>2];h=c[d>>2]|0;l=b;return h|0}function td(a,d,e){a=a|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,m=0;f=l;l=l+48|0;g=f+8|0;h=f+4|0;i=f;j=f+40|0;k=f+32|0;m=f+16|0;c[g>>2]=a;c[h>>2]=d;c[i>>2]=e;ud(j,j+2|0,c[h>>2]|0,c[i>>2]|0,23527);ud(k,k+2|0,c[h>>2]|0,b[j>>1]|0,23375);ud(m,m+2|0,c[h>>2]|0,b[k>>1]|0,23223);ud(c[g>>2]|0,(c[g>>2]|0)+2|0,c[h>>2]|0,b[m>>1]|0,23071);ud((c[g>>2]|0)+4|0,(c[g>>2]|0)+6|0,c[h>>2]|0,b[m+2>>1]|0,23071);ud(m+4|0,m+6|0,c[h>>2]|0,b[k+2>>1]|0,23223);ud((c[g>>2]|0)+8|0,(c[g>>2]|0)+10|0,c[h>>2]|0,b[m+4>>1]|0,23071);ud((c[g>>2]|0)+12|0,(c[g>>2]|0)+14|0,c[h>>2]|0,b[m+6>>1]|0,23071);ud(k+4|0,k+6|0,c[h>>2]|0,b[j+2>>1]|0,23375);ud(m+8|0,m+10|0,c[h>>2]|0,b[k+4>>1]|0,23223);ud((c[g>>2]|0)+16|0,(c[g>>2]|0)+18|0,c[h>>2]|0,b[m+8>>1]|0,23071);ud((c[g>>2]|0)+20|0,(c[g>>2]|0)+22|0,c[h>>2]|0,b[m+10>>1]|0,23071);ud(m+12|0,m+14|0,c[h>>2]|0,b[k+6>>1]|0,23223);ud((c[g>>2]|0)+24|0,(c[g>>2]|0)+26|0,c[h>>2]|0,b[m+12>>1]|0,23071);ud((c[g>>2]|0)+28|0,(c[g>>2]|0)+30|0,c[h>>2]|0,b[m+14>>1]|0,23071);l=f;return}function ud(a,e,f,g,h){a=a|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0;i=l;l=l+32|0;j=i+16|0;k=i+12|0;m=i+8|0;n=i+4|0;o=i;c[j>>2]=a;c[k>>2]=e;c[m>>2]=f;c[n>>2]=g;c[o>>2]=h;if((c[n>>2]|0)>0){h=(bc(c[m>>2]|0,(c[o>>2]|0)+(d[23679+(c[n>>2]|0)>>0]|0)|0,8)|0)&65535;b[c[j>>2]>>1]=h;p=(c[n>>2]|0)-(b[c[j>>2]>>1]|0)&65535;q=c[k>>2]|0;b[q>>1]=p;l=i;return}else{b[c[j>>2]>>1]=0;p=0;q=c[k>>2]|0;b[q>>1]=p;l=i;return}}function vd(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0;f=l;l=l+32|0;g=f+16|0;h=f+12|0;i=f+8|0;j=f+4|0;k=f;c[g>>2]=b;c[h>>2]=d;c[i>>2]=e;c[k>>2]=0;c[(c[g>>2]|0)+2332>>2]=((c[h>>2]&65535)<<16>>16)*5;c[j>>2]=R((c[(c[g>>2]|0)+2324>>2]&65535)<<16>>16,(c[(c[g>>2]|0)+2332>>2]&65535)<<16>>16)|0;if(!((c[(c[g>>2]|0)+2316>>2]|0)==(c[h>>2]|0)?(c[(c[g>>2]|0)+2320>>2]|0)==(c[i>>2]|0):0)){e=wd((c[g>>2]|0)+2432|0,((c[h>>2]&65535)<<16>>16)*1e3|0,c[i>>2]|0,0)|0;c[k>>2]=(c[k>>2]|0)+e;c[(c[g>>2]|0)+2320>>2]=c[i>>2]}if((c[(c[g>>2]|0)+2316>>2]|0)==(c[h>>2]|0)?(c[j>>2]|0)==(c[(c[g>>2]|0)+2328>>2]|0):0){m=c[k>>2]|0;l=f;return m|0}i=(c[(c[g>>2]|0)+2324>>2]|0)==4;c[(c[g>>2]|0)+2384>>2]=(c[h>>2]|0)==8?(i?22847:22870):i?22813:22858;if((c[(c[g>>2]|0)+2316>>2]|0)!=(c[h>>2]|0)){c[(c[g>>2]|0)+2336>>2]=((c[h>>2]&65535)<<16>>16)*20;i=(c[g>>2]|0)+2340|0;if((c[h>>2]|0)==8|(c[h>>2]|0)==12){c[i>>2]=10;n=c[g>>2]|0;o=132}else{c[i>>2]=16;n=c[g>>2]|0;o=168}c[n+2732>>2]=o;do if((c[h>>2]|0)!=16){if((c[h>>2]|0)==12){p=22739;q=c[g>>2]|0;r=16;break}if((c[h>>2]|0)==8){p=22730;q=c[g>>2]|0;r=16}}else{p=22745;q=c[g>>2]|0;r=16}while(0);if((r|0)==16)c[q+2380>>2]=p;c[(c[g>>2]|0)+2376>>2]=1;c[(c[g>>2]|0)+2308>>2]=100;a[(c[g>>2]|0)+2312>>0]=10;c[(c[g>>2]|0)+4164>>2]=0;He((c[g>>2]|0)+1348|0,0,960)|0;p=(c[g>>2]|0)+1284|0;q=p+64|0;do{c[p>>2]=0;p=p+4|0}while((p|0)<(q|0))}c[(c[g>>2]|0)+2316>>2]=c[h>>2];c[(c[g>>2]|0)+2328>>2]=c[j>>2];m=c[k>>2]|0;l=f;return m|0}function wd(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0;g=l;l=l+32|0;h=g+20|0;i=g+16|0;j=g+12|0;k=g+8|0;m=g+4|0;n=g;c[i>>2]=b;c[j>>2]=d;c[k>>2]=e;c[m>>2]=f;He(c[i>>2]|0,0,300)|0;f=(c[j>>2]|0)!=8e3&(c[j>>2]|0)!=12e3&(c[j>>2]|0)!=16e3;do if(c[m>>2]|0){if(!(f&(c[j>>2]|0)!=24e3&(c[j>>2]|0)!=48e3)?!((c[k>>2]|0)!=8e3&(c[k>>2]|0)!=12e3&(c[k>>2]|0)!=16e3):0){o=c[i>>2]|0;p=a[25178+((((c[j>>2]>>12)-((c[j>>2]|0)>16e3&1)>>((c[j>>2]|0)>24e3&1))-1|0)*3|0)+(((c[k>>2]>>12)-((c[k>>2]|0)>16e3&1)>>((c[k>>2]|0)>24e3&1))-1)>>0]|0;break}c[h>>2]=-1;q=c[h>>2]|0;l=g;return q|0}else{if(!f?!((c[k>>2]|0)!=8e3&(c[k>>2]|0)!=12e3&(c[k>>2]|0)!=16e3&(c[k>>2]|0)!=24e3&(c[k>>2]|0)!=48e3):0){o=c[i>>2]|0;p=a[25193+((((c[j>>2]>>12)-((c[j>>2]|0)>16e3&1)>>((c[j>>2]|0)>24e3&1))-1|0)*5|0)+(((c[k>>2]>>12)-((c[k>>2]|0)>16e3&1)>>((c[k>>2]|0)>24e3&1))-1)>>0]|0;break}c[h>>2]=-1;q=c[h>>2]|0;l=g;return q|0}while(0);c[o+292>>2]=p;c[(c[i>>2]|0)+284>>2]=(c[j>>2]|0)/1e3|0;c[(c[i>>2]|0)+288>>2]=(c[k>>2]|0)/1e3|0;c[(c[i>>2]|0)+268>>2]=(c[(c[i>>2]|0)+284>>2]|0)*10;c[n>>2]=0;p=c[k>>2]|0;o=c[j>>2]|0;do if((c[k>>2]|0)>(c[j>>2]|0)){f=(c[i>>2]|0)+264|0;if((p|0)==(o<<1|0)){c[f>>2]=1;break}else{c[f>>2]=2;c[n>>2]=1;break}}else{f=(c[i>>2]|0)+264|0;if((p|0)>=(o|0)){c[f>>2]=0;break}c[f>>2]=3;if((c[k>>2]<<2|0)==((c[j>>2]|0)*3|0)){c[(c[i>>2]|0)+280>>2]=3;c[(c[i>>2]|0)+276>>2]=18;c[(c[i>>2]|0)+296>>2]=18048;break}if(((c[k>>2]|0)*3|0)==(c[j>>2]<<1|0)){c[(c[i>>2]|0)+280>>2]=2;c[(c[i>>2]|0)+276>>2]=18;c[(c[i>>2]|0)+296>>2]=18106;break}if((c[k>>2]<<1|0)==(c[j>>2]|0)){c[(c[i>>2]|0)+280>>2]=1;c[(c[i>>2]|0)+276>>2]=24;c[(c[i>>2]|0)+296>>2]=18146;break}if(((c[k>>2]|0)*3|0)==(c[j>>2]|0)){c[(c[i>>2]|0)+280>>2]=1;c[(c[i>>2]|0)+276>>2]=36;c[(c[i>>2]|0)+296>>2]=18174;break}if((c[k>>2]<<2|0)==(c[j>>2]|0)){c[(c[i>>2]|0)+280>>2]=1;c[(c[i>>2]|0)+276>>2]=36;c[(c[i>>2]|0)+296>>2]=18214;break}if(((c[k>>2]|0)*6|0)==(c[j>>2]|0)){c[(c[i>>2]|0)+280>>2]=1;c[(c[i>>2]|0)+276>>2]=36;c[(c[i>>2]|0)+296>>2]=18254;break}c[h>>2]=-1;q=c[h>>2]|0;l=g;return q|0}while(0);c[(c[i>>2]|0)+272>>2]=((c[j>>2]<<14+(c[n>>2]|0)|0)/(c[k>>2]|0)|0)<<2;while(1){o=R(c[(c[i>>2]|0)+272>>2]>>16,(c[k>>2]&65535)<<16>>16)|0;p=o+((R(c[(c[i>>2]|0)+272>>2]&65535,(c[k>>2]&65535)<<16>>16)|0)>>16)|0;o=p+(R(c[(c[i>>2]|0)+272>>2]|0,(c[k>>2]>>15)+1>>1)|0)|0;if((o|0)>=(c[j>>2]<<c[n>>2]|0))break;o=(c[i>>2]|0)+272|0;c[o>>2]=(c[o>>2]|0)+1}c[h>>2]=0;q=c[h>>2]|0;l=g;return q|0}function xd(a){a=a|0;var b=0,d=0,e=0;b=l;l=l+16|0;d=b+4|0;e=b;c[d>>2]=a;c[e>>2]=0;c[c[d>>2]>>2]=8544;l=b;return c[e>>2]|0}function yd(a){a=a|0;var b=0,d=0,e=0,f=0,g=0;b=l;l=l+16|0;d=b+12|0;e=b+8|0;f=b+4|0;g=b;c[d>>2]=a;c[f>>2]=0;c[g>>2]=c[d>>2];c[e>>2]=0;while(1){if((c[e>>2]|0)>=2)break;c[f>>2]=Ac((c[g>>2]|0)+((c[e>>2]|0)*4260|0)|0)|0;c[e>>2]=(c[e>>2]|0)+1}e=(c[d>>2]|0)+8520|0;c[e>>2]=0;c[e+4>>2]=0;c[e+8>>2]=0;c[(c[d>>2]|0)+8540>>2]=0;l=b;return c[f>>2]|0}function zd(d,e,f,g,h,i,j){d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;var k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,$=0,aa=0,ba=0,ca=0;k=l;l=l+768|0;m=k+124|0;n=k+120|0;o=k+116|0;p=k+112|0;q=k+108|0;r=k+104|0;s=k+100|0;t=k+96|0;u=k+92|0;v=k+88|0;w=k+84|0;x=k+80|0;y=k+76|0;z=k+72|0;A=k+64|0;B=k+56|0;C=k+52|0;D=k+48|0;E=k+44|0;F=k+40|0;G=k+36|0;H=k+32|0;I=k+28|0;J=k+128|0;K=k+24|0;L=k+20|0;M=k+16|0;N=k+12|0;O=k;c[n>>2]=d;c[o>>2]=e;c[p>>2]=f;c[q>>2]=g;c[r>>2]=h;c[s>>2]=i;c[t>>2]=j;c[w>>2]=0;c[x>>2]=0;c[B>>2]=0;c[B+4>>2]=0;c[D>>2]=c[n>>2];c[E>>2]=c[D>>2];a:do if(c[q>>2]|0){c[v>>2]=0;while(1){if((c[v>>2]|0)>=(c[(c[o>>2]|0)+4>>2]|0))break a;c[(c[E>>2]|0)+((c[v>>2]|0)*4260|0)+2388>>2]=0;c[v>>2]=(c[v>>2]|0)+1}}while(0);if((c[(c[o>>2]|0)+4>>2]|0)>(c[(c[D>>2]|0)+8536>>2]|0)){q=Ac((c[E>>2]|0)+4260|0)|0;c[x>>2]=(c[x>>2]|0)+q}if((c[(c[o>>2]|0)+4>>2]|0)==1?(c[(c[D>>2]|0)+8536>>2]|0)==2:0)P=(c[(c[o>>2]|0)+12>>2]|0)==((c[(c[E>>2]|0)+2316>>2]|0)*1e3|0);else P=0;c[G>>2]=P&1;b:do if(!(c[(c[E>>2]|0)+2388>>2]|0)){c[v>>2]=0;c:while(1){if((c[v>>2]|0)>=(c[(c[o>>2]|0)+4>>2]|0))break b;do if(!(c[(c[o>>2]|0)+16>>2]|0)){c[(c[E>>2]|0)+((c[v>>2]|0)*4260|0)+2392>>2]=1;Q=2;S=(c[E>>2]|0)+((c[v>>2]|0)*4260|0)|0}else{if((c[(c[o>>2]|0)+16>>2]|0)==10){c[(c[E>>2]|0)+((c[v>>2]|0)*4260|0)+2392>>2]=1;Q=2;S=(c[E>>2]|0)+((c[v>>2]|0)*4260|0)|0;break}if((c[(c[o>>2]|0)+16>>2]|0)==20){c[(c[E>>2]|0)+((c[v>>2]|0)*4260|0)+2392>>2]=1;Q=4;S=(c[E>>2]|0)+((c[v>>2]|0)*4260|0)|0;break}if((c[(c[o>>2]|0)+16>>2]|0)==40){c[(c[E>>2]|0)+((c[v>>2]|0)*4260|0)+2392>>2]=2;Q=4;S=(c[E>>2]|0)+((c[v>>2]|0)*4260|0)|0;break}if((c[(c[o>>2]|0)+16>>2]|0)!=60){T=23;break c}c[(c[E>>2]|0)+((c[v>>2]|0)*4260|0)+2392>>2]=3;Q=4;S=(c[E>>2]|0)+((c[v>>2]|0)*4260|0)|0}while(0);c[S+2324>>2]=Q;c[I>>2]=(c[(c[o>>2]|0)+12>>2]>>10)+1;if((c[I>>2]|0)!=8&(c[I>>2]|0)!=12&(c[I>>2]|0)!=16){T=25;break}P=vd((c[E>>2]|0)+((c[v>>2]|0)*4260|0)|0,c[I>>2]|0,c[(c[o>>2]|0)+8>>2]|0)|0;c[x>>2]=(c[x>>2]|0)+P;c[v>>2]=(c[v>>2]|0)+1}if((T|0)==23){c[m>>2]=-203;U=c[m>>2]|0;l=k;return U|0}else if((T|0)==25){c[m>>2]=-200;U=c[m>>2]|0;l=k;return U|0}}while(0);do if((c[c[o>>2]>>2]|0)==2?(c[(c[o>>2]|0)+4>>2]|0)==2:0){if((c[(c[D>>2]|0)+8532>>2]|0)!=1?(c[(c[D>>2]|0)+8536>>2]|0)!=1:0)break;c[(c[D>>2]|0)+8520>>2]=0;c[(c[D>>2]|0)+8520+8>>2]=0;Ie((c[E>>2]|0)+4260+2432|0,(c[E>>2]|0)+2432|0,300)|0}while(0);c[(c[D>>2]|0)+8532>>2]=c[c[o>>2]>>2];c[(c[D>>2]|0)+8536>>2]=c[(c[o>>2]|0)+4>>2];if((c[(c[o>>2]|0)+8>>2]|0)<=48e3?(c[(c[o>>2]|0)+8>>2]|0)>=8e3:0){d:do if((c[p>>2]|0)!=1?(c[(c[E>>2]|0)+2388>>2]|0)==0:0){c[v>>2]=0;while(1){if((c[v>>2]|0)>=(c[(c[o>>2]|0)+4>>2]|0))break;c[u>>2]=0;while(1){I=(c[u>>2]|0)<(c[(c[E>>2]|0)+((c[v>>2]|0)*4260|0)+2392>>2]|0);V=Va(c[r>>2]|0,1)|0;W=(c[E>>2]|0)+((c[v>>2]|0)*4260|0)|0;if(!I)break;c[W+2404+(c[u>>2]<<2)>>2]=V;c[u>>2]=(c[u>>2]|0)+1}c[W+2416>>2]=V;c[v>>2]=(c[v>>2]|0)+1}c[v>>2]=0;while(1){if((c[v>>2]|0)>=(c[(c[o>>2]|0)+4>>2]|0))break;I=(c[E>>2]|0)+((c[v>>2]|0)*4260|0)+2420|0;c[I>>2]=0;c[I+4>>2]=0;c[I+8>>2]=0;e:do if(c[(c[E>>2]|0)+((c[v>>2]|0)*4260|0)+2416>>2]|0){if((c[(c[E>>2]|0)+((c[v>>2]|0)*4260|0)+2392>>2]|0)==1){c[(c[E>>2]|0)+((c[v>>2]|0)*4260|0)+2420>>2]=1;break}c[z>>2]=(bc(c[r>>2]|0,c[204+((c[(c[E>>2]|0)+((c[v>>2]|0)*4260|0)+2392>>2]|0)-2<<2)>>2]|0,8)|0)+1;c[u>>2]=0;while(1){if((c[u>>2]|0)>=(c[(c[E>>2]|0)+((c[v>>2]|0)*4260|0)+2392>>2]|0))break e;c[(c[E>>2]|0)+((c[v>>2]|0)*4260|0)+2420+(c[u>>2]<<2)>>2]=c[z>>2]>>c[u>>2]&1;c[u>>2]=(c[u>>2]|0)+1}}while(0);c[v>>2]=(c[v>>2]|0)+1}if(!(c[p>>2]|0)){c[u>>2]=0;while(1){if((c[u>>2]|0)>=(c[(c[E>>2]|0)+2392>>2]|0))break d;c[v>>2]=0;while(1){if((c[v>>2]|0)>=(c[(c[o>>2]|0)+4>>2]|0))break;if(c[(c[E>>2]|0)+((c[v>>2]|0)*4260|0)+2420+(c[u>>2]<<2)>>2]|0){do if((c[v>>2]|0)==0?(c[(c[o>>2]|0)+4>>2]|0)==2:0){Ad(c[r>>2]|0,B);if(c[(c[E>>2]|0)+4260+2420+(c[u>>2]<<2)>>2]|0)break;Bd(c[r>>2]|0,w)}while(0);do if((c[u>>2]|0)>0){if(!(c[(c[E>>2]|0)+((c[v>>2]|0)*4260|0)+2420+((c[u>>2]|0)-1<<2)>>2]|0)){T=64;break}c[K>>2]=2}else T=64;while(0);if((T|0)==64){T=0;c[K>>2]=0}Ic((c[E>>2]|0)+((c[v>>2]|0)*4260|0)|0,c[r>>2]|0,c[u>>2]|0,1,c[K>>2]|0);Jc(c[r>>2]|0,J,a[(c[E>>2]|0)+((c[v>>2]|0)*4260|0)+2736+29>>0]|0,a[(c[E>>2]|0)+((c[v>>2]|0)*4260|0)+2736+30>>0]|0,c[(c[E>>2]|0)+((c[v>>2]|0)*4260|0)+2328>>2]|0)}c[v>>2]=(c[v>>2]|0)+1}c[u>>2]=(c[u>>2]|0)+1}}}while(0);f:do if((c[(c[o>>2]|0)+4>>2]|0)==2){do if(c[p>>2]|0){if((c[p>>2]|0)==2?(c[(c[E>>2]|0)+2420+(c[(c[E>>2]|0)+2388>>2]<<2)>>2]|0)==1:0)break;c[v>>2]=0;while(1){if((c[v>>2]|0)>=2)break f;c[B+(c[v>>2]<<2)>>2]=b[(c[D>>2]|0)+8520+(c[v>>2]<<1)>>1];c[v>>2]=(c[v>>2]|0)+1}}while(0);Ad(c[r>>2]|0,B);if(!((c[p>>2]|0)==0?!(c[(c[E>>2]|0)+4260+2404+(c[(c[E>>2]|0)+2388>>2]<<2)>>2]|0):0))T=74;do if((T|0)==74){if((c[p>>2]|0)==2?(c[(c[E>>2]|0)+4260+2420+(c[(c[E>>2]|0)+2388>>2]<<2)>>2]|0)==0:0)break;c[w>>2]=0;break f}while(0);Bd(c[r>>2]|0,w)}while(0);if(((c[w>>2]|0)==0?(c[(c[o>>2]|0)+4>>2]|0)==2:0)?(c[(c[D>>2]|0)+8540>>2]|0)==1:0){He((c[D>>2]|0)+4260+1348|0,0,960)|0;T=(c[D>>2]|0)+4260+1284|0;J=T+64|0;do{c[T>>2]=0;T=T+4|0}while((T|0)<(J|0));c[(c[D>>2]|0)+4260+2308>>2]=100;a[(c[D>>2]|0)+4260+2312>>0]=10;c[(c[D>>2]|0)+4260+4164>>2]=0;c[(c[D>>2]|0)+4260+2376>>2]=1}T=R(c[(c[o>>2]|0)+12>>2]|0,c[(c[o>>2]|0)+4>>2]|0)|0;c[H>>2]=(T|0)<(R(c[(c[o>>2]|0)+8>>2]|0,c[c[o>>2]>>2]|0)|0)&1;if(c[H>>2]|0)X=1;else X=R(c[(c[o>>2]|0)+4>>2]|0,(c[(c[E>>2]|0)+2328>>2]|0)+2|0)|0;c[L>>2]=da()|0;T=l;l=l+((1*(X<<1)|0)+15&-16)|0;if(c[H>>2]|0){c[A>>2]=c[s>>2];Y=c[E>>2]|0;Z=c[s>>2]|0}else{c[A>>2]=T;Y=c[E>>2]|0;Z=T}c[A+4>>2]=Z+(c[Y+2328>>2]<<1)+4;if(!(c[p>>2]|0))c[F>>2]=((c[w>>2]|0)!=0^1)&1;else{if(c[(c[D>>2]|0)+8540>>2]|0)if((c[p>>2]|0)==2?(c[(c[o>>2]|0)+4>>2]|0)==2:0)_=(c[(c[E>>2]|0)+4260+2420+(c[(c[E>>2]|0)+4260+2388>>2]<<2)>>2]|0)==1;else _=0;else _=1;c[F>>2]=_&1}c[v>>2]=0;while(1){if((c[v>>2]|0)>=(c[(c[o>>2]|0)+4>>2]|0))break;if((c[v>>2]|0)==0|(c[F>>2]|0)!=0){c[M>>2]=(c[(c[E>>2]|0)+2388>>2]|0)-(c[v>>2]|0);g:do if((c[M>>2]|0)<=0)c[N>>2]=0;else{if((c[p>>2]|0)==2){c[N>>2]=c[(c[E>>2]|0)+((c[v>>2]|0)*4260|0)+2420+((c[M>>2]|0)-1<<2)>>2]|0?2:0;break}do if((c[v>>2]|0)>0){if(!(c[(c[D>>2]|0)+8540>>2]|0))break;c[N>>2]=1;break g}while(0);c[N>>2]=2}while(0);_=Hc((c[E>>2]|0)+((c[v>>2]|0)*4260|0)|0,c[r>>2]|0,(c[A+(c[v>>2]<<2)>>2]|0)+4|0,y,c[p>>2]|0,c[N>>2]|0)|0;c[x>>2]=(c[x>>2]|0)+_}else He((c[A+(c[v>>2]<<2)>>2]|0)+4|0,0,c[y>>2]<<1|0)|0;_=(c[E>>2]|0)+((c[v>>2]|0)*4260|0)+2388|0;c[_>>2]=(c[_>>2]|0)+1;c[v>>2]=(c[v>>2]|0)+1}if((c[c[o>>2]>>2]|0)==2?(c[(c[o>>2]|0)+4>>2]|0)==2:0)Cd((c[D>>2]|0)+8520|0,c[A>>2]|0,c[A+4>>2]|0,B,c[(c[E>>2]|0)+2316>>2]|0,c[y>>2]|0);else{B=c[A>>2]|0;N=(c[D>>2]|0)+8520+4|0;b[B>>1]=b[N>>1]|0;b[B+2>>1]=b[N+2>>1]|0;N=(c[D>>2]|0)+8520+4|0;B=(c[A>>2]|0)+(c[y>>2]<<1)|0;b[N>>1]=b[B>>1]|0;b[N+2>>1]=b[B+2>>1]|0}B=R(c[y>>2]|0,c[(c[o>>2]|0)+8>>2]|0)|0;c[c[t>>2]>>2]=(B|0)/(((c[(c[E>>2]|0)+2316>>2]&65535)<<16>>16)*1e3|0)|0;if((c[c[o>>2]>>2]|0)==2)$=c[c[t>>2]>>2]|0;else $=1;B=l;l=l+((1*($<<1)|0)+15&-16)|0;if((c[c[o>>2]>>2]|0)==2)c[C>>2]=B;else c[C>>2]=c[s>>2];if(c[H>>2]|0)aa=R(c[(c[o>>2]|0)+4>>2]|0,(c[(c[E>>2]|0)+2328>>2]|0)+2|0)|0;else aa=1;B=l;l=l+((1*(aa<<1)|0)+15&-16)|0;if(c[H>>2]|0){H=(R(c[(c[o>>2]|0)+4>>2]|0,(c[(c[E>>2]|0)+2328>>2]|0)+2|0)|0)<<1;Ie(B|0,c[s>>2]|0,H+0|0)|0;c[A>>2]=B;c[A+4>>2]=B+(c[(c[E>>2]|0)+2328>>2]<<1)+4}c[v>>2]=0;while(1){B=c[o>>2]|0;if((c[v>>2]|0)>=(c[((c[c[o>>2]>>2]|0)<(c[(c[o>>2]|0)+4>>2]|0)?B:B+4|0)>>2]|0))break;B=Dd((c[E>>2]|0)+((c[v>>2]|0)*4260|0)+2432|0,c[C>>2]|0,(c[A+(c[v>>2]<<2)>>2]|0)+2|0,c[y>>2]|0)|0;c[x>>2]=(c[x>>2]|0)+B;h:do if((c[c[o>>2]>>2]|0)==2){c[u>>2]=0;while(1){if((c[u>>2]|0)>=(c[c[t>>2]>>2]|0))break h;b[(c[s>>2]|0)+((c[v>>2]|0)+(c[u>>2]<<1)<<1)>>1]=b[(c[C>>2]|0)+(c[u>>2]<<1)>>1]|0;c[u>>2]=(c[u>>2]|0)+1}}while(0);c[v>>2]=(c[v>>2]|0)+1}i:do if((c[c[o>>2]>>2]|0)==2){if((c[(c[o>>2]|0)+4>>2]|0)!=1)break;if(c[G>>2]|0){v=Dd((c[E>>2]|0)+4260+2432|0,c[C>>2]|0,(c[A>>2]|0)+2|0,c[y>>2]|0)|0;c[x>>2]=(c[x>>2]|0)+v;c[u>>2]=0;while(1){if((c[u>>2]|0)>=(c[c[t>>2]>>2]|0))break i;b[(c[s>>2]|0)+(1+(c[u>>2]<<1)<<1)>>1]=b[(c[C>>2]|0)+(c[u>>2]<<1)>>1]|0;c[u>>2]=(c[u>>2]|0)+1}}else{c[u>>2]=0;while(1){if((c[u>>2]|0)>=(c[c[t>>2]>>2]|0))break i;b[(c[s>>2]|0)+(1+(c[u>>2]<<1)<<1)>>1]=b[(c[s>>2]|0)+(0+(c[u>>2]<<1)<<1)>>1]|0;c[u>>2]=(c[u>>2]|0)+1}}}while(0);if((c[(c[E>>2]|0)+4164>>2]|0)==2){c[O>>2]=c[4358];c[O+4>>2]=c[4359];c[O+8>>2]=c[4360];s=R(c[(c[E>>2]|0)+2308>>2]|0,c[O+((c[(c[E>>2]|0)+2316>>2]|0)-8>>2<<2)>>2]|0)|0;ba=s;ca=c[o>>2]|0}else{ba=0;ca=c[o>>2]|0}c[ca+20>>2]=ba;j:do if((c[p>>2]|0)==1){c[u>>2]=0;while(1){if((c[u>>2]|0)>=(c[(c[D>>2]|0)+8536>>2]|0))break j;a[(c[D>>2]|0)+((c[u>>2]|0)*4260|0)+2312>>0]=10;c[u>>2]=(c[u>>2]|0)+1}}else c[(c[D>>2]|0)+8540>>2]=c[w>>2];while(0);c[m>>2]=c[x>>2];ga(c[L>>2]|0);U=c[m>>2]|0;l=k;return U|0}c[x>>2]=-200;c[m>>2]=c[x>>2];U=c[m>>2]|0;l=k;return U|0}function Ad(a,d){a=a|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0;e=l;l=l+48|0;f=e+40|0;g=e+36|0;h=e+32|0;i=e+8|0;j=e+4|0;k=e;c[f>>2]=a;c[g>>2]=d;c[h>>2]=bc(c[f>>2]|0,22674,8)|0;c[i+8>>2]=(c[h>>2]|0)/5|0;c[i+12+8>>2]=(c[h>>2]|0)-((c[i+8>>2]|0)*5|0);c[h>>2]=0;while(1){if((c[h>>2]|0)>=2)break;d=bc(c[f>>2]|0,22727,8)|0;c[i+((c[h>>2]|0)*12|0)>>2]=d;d=bc(c[f>>2]|0,22734,8)|0;c[i+((c[h>>2]|0)*12|0)+4>>2]=d;c[h>>2]=(c[h>>2]|0)+1}c[h>>2]=0;while(1){if((c[h>>2]|0)>=2)break;f=i+((c[h>>2]|0)*12|0)|0;c[f>>2]=(c[f>>2]|0)+((c[i+((c[h>>2]|0)*12|0)+8>>2]|0)*3|0);c[j>>2]=b[17744+(c[i+((c[h>>2]|0)*12|0)>>2]<<1)>>1];c[k>>2]=(((b[17744+((c[i+((c[h>>2]|0)*12|0)>>2]|0)+1<<1)>>1]|0)-(c[j>>2]|0)>>16)*6554|0)+(((b[17744+((c[i+((c[h>>2]|0)*12|0)>>2]|0)+1<<1)>>1]|0)-(c[j>>2]|0)&65535)*6554>>16);f=(c[j>>2]|0)+(R((c[k>>2]&65535)<<16>>16,((c[i+((c[h>>2]|0)*12|0)+4>>2]<<1)+1&65535)<<16>>16)|0)|0;c[(c[g>>2]|0)+(c[h>>2]<<2)>>2]=f;c[h>>2]=(c[h>>2]|0)+1}h=c[g>>2]|0;c[h>>2]=(c[h>>2]|0)-(c[(c[g>>2]|0)+4>>2]|0);l=e;return}function Bd(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=l;l=l+16|0;e=d+4|0;f=d;c[e>>2]=a;c[f>>2]=b;b=bc(c[e>>2]|0,22699,8)|0;c[c[f>>2]>>2]=b;l=d;return}function Cd(a,d,e,f,g,h){a=a|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0;i=l;l=l+64|0;j=i+52|0;k=i+48|0;m=i+44|0;n=i+40|0;o=i+36|0;p=i+32|0;q=i+28|0;r=i+24|0;s=i+20|0;t=i+16|0;u=i+12|0;v=i+8|0;w=i+4|0;x=i;c[j>>2]=a;c[k>>2]=d;c[m>>2]=e;c[n>>2]=f;c[o>>2]=g;c[p>>2]=h;h=c[k>>2]|0;g=(c[j>>2]|0)+4|0;b[h>>1]=b[g>>1]|0;b[h+2>>1]=b[g+2>>1]|0;g=c[m>>2]|0;h=(c[j>>2]|0)+8|0;b[g>>1]=b[h>>1]|0;b[g+2>>1]=b[h+2>>1]|0;h=(c[j>>2]|0)+4|0;g=(c[k>>2]|0)+(c[p>>2]<<1)|0;b[h>>1]=b[g>>1]|0;b[h+2>>1]=b[g+2>>1]|0;g=(c[j>>2]|0)+8|0;h=(c[m>>2]|0)+(c[p>>2]<<1)|0;b[g>>1]=b[h>>1]|0;b[g+2>>1]=b[h+2>>1]|0;c[w>>2]=b[c[j>>2]>>1];c[x>>2]=b[(c[j>>2]|0)+2>>1];c[r>>2]=65536/(c[o>>2]<<3|0)|0;c[s>>2]=((R(((c[c[n>>2]>>2]|0)-(b[c[j>>2]>>1]|0)&65535)<<16>>16,(c[r>>2]&65535)<<16>>16)|0)>>15)+1>>1;c[t>>2]=((R(((c[(c[n>>2]|0)+4>>2]|0)-(b[(c[j>>2]|0)+2>>1]|0)&65535)<<16>>16,(c[r>>2]&65535)<<16>>16)|0)>>15)+1>>1;c[q>>2]=0;while(1){if((c[q>>2]|0)>=(c[o>>2]<<3|0))break;c[w>>2]=(c[w>>2]|0)+(c[s>>2]|0);c[x>>2]=(c[x>>2]|0)+(c[t>>2]|0);c[u>>2]=(b[(c[k>>2]|0)+(c[q>>2]<<1)>>1]|0)+(b[(c[k>>2]|0)+((c[q>>2]|0)+2<<1)>>1]|0)+(b[(c[k>>2]|0)+((c[q>>2]|0)+1<<1)>>1]<<1)<<9;r=R(c[u>>2]>>16,(c[w>>2]&65535)<<16>>16)|0;c[u>>2]=(b[(c[m>>2]|0)+((c[q>>2]|0)+1<<1)>>1]<<8)+(r+((R(c[u>>2]&65535,(c[w>>2]&65535)<<16>>16)|0)>>16));r=R(b[(c[k>>2]|0)+((c[q>>2]|0)+1<<1)>>1]<<11>>16,(c[x>>2]&65535)<<16>>16)|0;c[u>>2]=(c[u>>2]|0)+(r+((R(b[(c[k>>2]|0)+((c[q>>2]|0)+1<<1)>>1]<<11&65535,(c[x>>2]&65535)<<16>>16)|0)>>16));if(((c[u>>2]>>7)+1>>1|0)<=32767)if(((c[u>>2]>>7)+1>>1|0)<-32768)y=-32768;else y=(c[u>>2]>>7)+1>>1;else y=32767;b[(c[m>>2]|0)+((c[q>>2]|0)+1<<1)>>1]=y;c[q>>2]=(c[q>>2]|0)+1}c[w>>2]=c[c[n>>2]>>2];c[x>>2]=c[(c[n>>2]|0)+4>>2];c[q>>2]=c[o>>2]<<3;while(1){if((c[q>>2]|0)>=(c[p>>2]|0))break;c[u>>2]=(b[(c[k>>2]|0)+(c[q>>2]<<1)>>1]|0)+(b[(c[k>>2]|0)+((c[q>>2]|0)+2<<1)>>1]|0)+(b[(c[k>>2]|0)+((c[q>>2]|0)+1<<1)>>1]<<1)<<9;o=R(c[u>>2]>>16,(c[w>>2]&65535)<<16>>16)|0;c[u>>2]=(b[(c[m>>2]|0)+((c[q>>2]|0)+1<<1)>>1]<<8)+(o+((R(c[u>>2]&65535,(c[w>>2]&65535)<<16>>16)|0)>>16));o=R(b[(c[k>>2]|0)+((c[q>>2]|0)+1<<1)>>1]<<11>>16,(c[x>>2]&65535)<<16>>16)|0;c[u>>2]=(c[u>>2]|0)+(o+((R(b[(c[k>>2]|0)+((c[q>>2]|0)+1<<1)>>1]<<11&65535,(c[x>>2]&65535)<<16>>16)|0)>>16));if(((c[u>>2]>>7)+1>>1|0)<=32767)if(((c[u>>2]>>7)+1>>1|0)<-32768)z=-32768;else z=(c[u>>2]>>7)+1>>1;else z=32767;b[(c[m>>2]|0)+((c[q>>2]|0)+1<<1)>>1]=z;c[q>>2]=(c[q>>2]|0)+1}b[c[j>>2]>>1]=c[c[n>>2]>>2];b[(c[j>>2]|0)+2>>1]=c[(c[n>>2]|0)+4>>2];c[q>>2]=0;while(1){if((c[q>>2]|0)>=(c[p>>2]|0))break;c[u>>2]=(b[(c[k>>2]|0)+((c[q>>2]|0)+1<<1)>>1]|0)+(b[(c[m>>2]|0)+((c[q>>2]|0)+1<<1)>>1]|0);c[v>>2]=(b[(c[k>>2]|0)+((c[q>>2]|0)+1<<1)>>1]|0)-(b[(c[m>>2]|0)+((c[q>>2]|0)+1<<1)>>1]|0);if((c[u>>2]|0)>32767)A=32767;else A=(c[u>>2]|0)<-32768?-32768:c[u>>2]|0;b[(c[k>>2]|0)+((c[q>>2]|0)+1<<1)>>1]=A;if((c[v>>2]|0)>32767)B=32767;else B=(c[v>>2]|0)<-32768?-32768:c[v>>2]|0;b[(c[m>>2]|0)+((c[q>>2]|0)+1<<1)>>1]=B;c[q>>2]=(c[q>>2]|0)+1}l=i;return}function Dd(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0;f=l;l=l+32|0;g=f+16|0;h=f+12|0;i=f+8|0;j=f+4|0;k=f;c[g>>2]=a;c[h>>2]=b;c[i>>2]=d;c[j>>2]=e;c[k>>2]=(c[(c[g>>2]|0)+284>>2]|0)-(c[(c[g>>2]|0)+292>>2]|0);Ie((c[g>>2]|0)+168+(c[(c[g>>2]|0)+292>>2]<<1)|0,c[i>>2]|0,c[k>>2]<<1|0)|0;switch(c[(c[g>>2]|0)+264>>2]|0){case 1:{Ed(c[g>>2]|0,c[h>>2]|0,(c[g>>2]|0)+168|0,c[(c[g>>2]|0)+284>>2]|0);Ed(c[g>>2]|0,(c[h>>2]|0)+(c[(c[g>>2]|0)+288>>2]<<1)|0,(c[i>>2]|0)+(c[k>>2]<<1)|0,(c[j>>2]|0)-(c[(c[g>>2]|0)+284>>2]|0)|0);break}case 2:{Fd(c[g>>2]|0,c[h>>2]|0,(c[g>>2]|0)+168|0,c[(c[g>>2]|0)+284>>2]|0);Fd(c[g>>2]|0,(c[h>>2]|0)+(c[(c[g>>2]|0)+288>>2]<<1)|0,(c[i>>2]|0)+(c[k>>2]<<1)|0,(c[j>>2]|0)-(c[(c[g>>2]|0)+284>>2]|0)|0);break}case 3:{Gd(c[g>>2]|0,c[h>>2]|0,(c[g>>2]|0)+168|0,c[(c[g>>2]|0)+284>>2]|0);Gd(c[g>>2]|0,(c[h>>2]|0)+(c[(c[g>>2]|0)+288>>2]<<1)|0,(c[i>>2]|0)+(c[k>>2]<<1)|0,(c[j>>2]|0)-(c[(c[g>>2]|0)+284>>2]|0)|0);break}default:{Ie(c[h>>2]|0,(c[g>>2]|0)+168|0,c[(c[g>>2]|0)+284>>2]<<1|0)|0;Ie((c[h>>2]|0)+(c[(c[g>>2]|0)+288>>2]<<1)|0,(c[i>>2]|0)+(c[k>>2]<<1)|0,(c[j>>2]|0)-(c[(c[g>>2]|0)+284>>2]|0)<<1|0)|0}}Ie((c[g>>2]|0)+168|0,(c[i>>2]|0)+((c[j>>2]|0)-(c[(c[g>>2]|0)+292>>2]|0)<<1)|0,c[(c[g>>2]|0)+292>>2]<<1|0)|0;l=f;return 0}function Ed(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0;f=l;l=l+32|0;g=f+16|0;h=f+12|0;i=f+8|0;j=f+4|0;k=f;c[g>>2]=a;c[h>>2]=b;c[i>>2]=d;c[j>>2]=e;c[k>>2]=c[g>>2];Jd(c[k>>2]|0,c[h>>2]|0,c[i>>2]|0,c[j>>2]|0);l=f;return}function Fd(a,d,e,f){a=a|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0;g=l;l=l+48|0;h=g+32|0;i=g+28|0;j=g+24|0;k=g+20|0;m=g+16|0;n=g+12|0;o=g+8|0;p=g+4|0;q=g;c[h>>2]=a;c[i>>2]=d;c[j>>2]=e;c[k>>2]=f;c[m>>2]=c[h>>2];h=(c[(c[m>>2]|0)+268>>2]<<1)+8|0;c[q>>2]=da()|0;f=l;l=l+((1*(h<<1)|0)+15&-16)|0;h=(c[m>>2]|0)+24|0;b[f>>1]=b[h>>1]|0;b[f+2>>1]=b[h+2>>1]|0;b[f+4>>1]=b[h+4>>1]|0;b[f+6>>1]=b[h+6>>1]|0;b[f+8>>1]=b[h+8>>1]|0;b[f+10>>1]=b[h+10>>1]|0;b[f+12>>1]=b[h+12>>1]|0;b[f+14>>1]=b[h+14>>1]|0;c[p>>2]=c[(c[m>>2]|0)+272>>2];while(1){if((c[k>>2]|0)<(c[(c[m>>2]|0)+268>>2]|0))r=c[k>>2]|0;else r=c[(c[m>>2]|0)+268>>2]|0;c[n>>2]=r;Jd(c[m>>2]|0,f+16|0,c[j>>2]|0,c[n>>2]|0);c[o>>2]=c[n>>2]<<17;c[i>>2]=Kd(c[i>>2]|0,f,c[o>>2]|0,c[p>>2]|0)|0;c[j>>2]=(c[j>>2]|0)+(c[n>>2]<<1);c[k>>2]=(c[k>>2]|0)-(c[n>>2]|0);if((c[k>>2]|0)<=0)break;h=f+(c[n>>2]<<1<<1)|0;b[f>>1]=b[h>>1]|0;b[f+2>>1]=b[h+2>>1]|0;b[f+4>>1]=b[h+4>>1]|0;b[f+6>>1]=b[h+6>>1]|0;b[f+8>>1]=b[h+8>>1]|0;b[f+10>>1]=b[h+10>>1]|0;b[f+12>>1]=b[h+12>>1]|0;b[f+14>>1]=b[h+14>>1]|0}k=(c[m>>2]|0)+24|0;m=f+(c[n>>2]<<1<<1)|0;b[k>>1]=b[m>>1]|0;b[k+2>>1]=b[m+2>>1]|0;b[k+4>>1]=b[m+4>>1]|0;b[k+6>>1]=b[m+6>>1]|0;b[k+8>>1]=b[m+8>>1]|0;b[k+10>>1]=b[m+10>>1]|0;b[k+12>>1]=b[m+12>>1]|0;b[k+14>>1]=b[m+14>>1]|0;ga(c[q>>2]|0);l=g;return}function Gd(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0;f=l;l=l+48|0;g=f+36|0;h=f+32|0;i=f+28|0;j=f+24|0;k=f+20|0;m=f+16|0;n=f+12|0;o=f+8|0;p=f+4|0;q=f;c[g>>2]=a;c[h>>2]=b;c[i>>2]=d;c[j>>2]=e;c[k>>2]=c[g>>2];g=(c[(c[k>>2]|0)+268>>2]|0)+(c[(c[k>>2]|0)+276>>2]|0)|0;c[q>>2]=da()|0;e=l;l=l+((1*(g<<2)|0)+15&-16)|0;Ie(e|0,(c[k>>2]|0)+24|0,c[(c[k>>2]|0)+276>>2]<<2|0)|0;c[p>>2]=(c[(c[k>>2]|0)+296>>2]|0)+4;c[o>>2]=c[(c[k>>2]|0)+272>>2];while(1){if((c[j>>2]|0)<(c[(c[k>>2]|0)+268>>2]|0))r=c[j>>2]|0;else r=c[(c[k>>2]|0)+268>>2]|0;c[m>>2]=r;Hd(c[k>>2]|0,e+(c[(c[k>>2]|0)+276>>2]<<2)|0,c[i>>2]|0,c[(c[k>>2]|0)+296>>2]|0,c[m>>2]|0);c[n>>2]=c[m>>2]<<16;c[h>>2]=Id(c[h>>2]|0,e,c[p>>2]|0,c[(c[k>>2]|0)+276>>2]|0,c[(c[k>>2]|0)+280>>2]|0,c[n>>2]|0,c[o>>2]|0)|0;c[i>>2]=(c[i>>2]|0)+(c[m>>2]<<1);c[j>>2]=(c[j>>2]|0)-(c[m>>2]|0);if((c[j>>2]|0)<=1)break;Ie(e|0,e+(c[m>>2]<<2)|0,c[(c[k>>2]|0)+276>>2]<<2|0)|0}Ie((c[k>>2]|0)+24|0,e+(c[m>>2]<<2)|0,c[(c[k>>2]|0)+276>>2]<<2|0)|0;ga(c[q>>2]|0);l=f;return}function Hd(a,d,e,f,g){a=a|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0;h=l;l=l+32|0;i=h+24|0;j=h+20|0;k=h+16|0;m=h+12|0;n=h+8|0;o=h+4|0;p=h;c[i>>2]=a;c[j>>2]=d;c[k>>2]=e;c[m>>2]=f;c[n>>2]=g;c[o>>2]=0;while(1){if((c[o>>2]|0)>=(c[n>>2]|0))break;c[p>>2]=(c[c[i>>2]>>2]|0)+(b[(c[k>>2]|0)+(c[o>>2]<<1)>>1]<<8);c[(c[j>>2]|0)+(c[o>>2]<<2)>>2]=c[p>>2];c[p>>2]=c[p>>2]<<2;g=R(c[p>>2]>>16,b[c[m>>2]>>1]|0)|0;f=(c[(c[i>>2]|0)+4>>2]|0)+(g+((R(c[p>>2]&65535,b[c[m>>2]>>1]|0)|0)>>16))|0;c[c[i>>2]>>2]=f;f=R(c[p>>2]>>16,b[(c[m>>2]|0)+2>>1]|0)|0;g=f+((R(c[p>>2]&65535,b[(c[m>>2]|0)+2>>1]|0)|0)>>16)|0;c[(c[i>>2]|0)+4>>2]=g;c[o>>2]=(c[o>>2]|0)+1}l=h;return}function Id(a,d,e,f,g,h,i){a=a|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;var j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0;j=l;l=l+48|0;k=j+44|0;m=j+40|0;n=j+36|0;o=j+32|0;p=j+28|0;q=j+24|0;r=j+20|0;s=j+16|0;t=j+12|0;u=j+8|0;v=j+4|0;w=j;c[k>>2]=a;c[m>>2]=d;c[n>>2]=e;c[o>>2]=f;c[p>>2]=g;c[q>>2]=h;c[r>>2]=i;switch(c[o>>2]|0){case 18:{c[s>>2]=0;while(1){if((c[s>>2]|0)>=(c[q>>2]|0))break;c[u>>2]=(c[m>>2]|0)+(c[s>>2]>>16<<2);o=R((c[s>>2]&65535)>>16,(c[p>>2]&65535)<<16>>16)|0;c[v>>2]=o+((R(c[s>>2]&65535,(c[p>>2]&65535)<<16>>16)|0)>>16);c[w>>2]=(c[n>>2]|0)+((c[v>>2]|0)*9<<1);o=R(c[c[u>>2]>>2]>>16,b[c[w>>2]>>1]|0)|0;c[t>>2]=o+((R(c[c[u>>2]>>2]&65535,b[c[w>>2]>>1]|0)|0)>>16);o=R(c[(c[u>>2]|0)+4>>2]>>16,b[(c[w>>2]|0)+2>>1]|0)|0;c[t>>2]=(c[t>>2]|0)+(o+((R(c[(c[u>>2]|0)+4>>2]&65535,b[(c[w>>2]|0)+2>>1]|0)|0)>>16));o=R(c[(c[u>>2]|0)+8>>2]>>16,b[(c[w>>2]|0)+4>>1]|0)|0;c[t>>2]=(c[t>>2]|0)+(o+((R(c[(c[u>>2]|0)+8>>2]&65535,b[(c[w>>2]|0)+4>>1]|0)|0)>>16));o=R(c[(c[u>>2]|0)+12>>2]>>16,b[(c[w>>2]|0)+6>>1]|0)|0;c[t>>2]=(c[t>>2]|0)+(o+((R(c[(c[u>>2]|0)+12>>2]&65535,b[(c[w>>2]|0)+6>>1]|0)|0)>>16));o=R(c[(c[u>>2]|0)+16>>2]>>16,b[(c[w>>2]|0)+8>>1]|0)|0;c[t>>2]=(c[t>>2]|0)+(o+((R(c[(c[u>>2]|0)+16>>2]&65535,b[(c[w>>2]|0)+8>>1]|0)|0)>>16));o=R(c[(c[u>>2]|0)+20>>2]>>16,b[(c[w>>2]|0)+10>>1]|0)|0;c[t>>2]=(c[t>>2]|0)+(o+((R(c[(c[u>>2]|0)+20>>2]&65535,b[(c[w>>2]|0)+10>>1]|0)|0)>>16));o=R(c[(c[u>>2]|0)+24>>2]>>16,b[(c[w>>2]|0)+12>>1]|0)|0;c[t>>2]=(c[t>>2]|0)+(o+((R(c[(c[u>>2]|0)+24>>2]&65535,b[(c[w>>2]|0)+12>>1]|0)|0)>>16));o=R(c[(c[u>>2]|0)+28>>2]>>16,b[(c[w>>2]|0)+14>>1]|0)|0;c[t>>2]=(c[t>>2]|0)+(o+((R(c[(c[u>>2]|0)+28>>2]&65535,b[(c[w>>2]|0)+14>>1]|0)|0)>>16));o=R(c[(c[u>>2]|0)+32>>2]>>16,b[(c[w>>2]|0)+16>>1]|0)|0;c[t>>2]=(c[t>>2]|0)+(o+((R(c[(c[u>>2]|0)+32>>2]&65535,b[(c[w>>2]|0)+16>>1]|0)|0)>>16));c[w>>2]=(c[n>>2]|0)+(((c[p>>2]|0)-1-(c[v>>2]|0)|0)*9<<1);o=R(c[(c[u>>2]|0)+68>>2]>>16,b[c[w>>2]>>1]|0)|0;c[t>>2]=(c[t>>2]|0)+(o+((R(c[(c[u>>2]|0)+68>>2]&65535,b[c[w>>2]>>1]|0)|0)>>16));o=R(c[(c[u>>2]|0)+64>>2]>>16,b[(c[w>>2]|0)+2>>1]|0)|0;c[t>>2]=(c[t>>2]|0)+(o+((R(c[(c[u>>2]|0)+64>>2]&65535,b[(c[w>>2]|0)+2>>1]|0)|0)>>16));o=R(c[(c[u>>2]|0)+60>>2]>>16,b[(c[w>>2]|0)+4>>1]|0)|0;c[t>>2]=(c[t>>2]|0)+(o+((R(c[(c[u>>2]|0)+60>>2]&65535,b[(c[w>>2]|0)+4>>1]|0)|0)>>16));o=R(c[(c[u>>2]|0)+56>>2]>>16,b[(c[w>>2]|0)+6>>1]|0)|0;c[t>>2]=(c[t>>2]|0)+(o+((R(c[(c[u>>2]|0)+56>>2]&65535,b[(c[w>>2]|0)+6>>1]|0)|0)>>16));o=R(c[(c[u>>2]|0)+52>>2]>>16,b[(c[w>>2]|0)+8>>1]|0)|0;c[t>>2]=(c[t>>2]|0)+(o+((R(c[(c[u>>2]|0)+52>>2]&65535,b[(c[w>>2]|0)+8>>1]|0)|0)>>16));o=R(c[(c[u>>2]|0)+48>>2]>>16,b[(c[w>>2]|0)+10>>1]|0)|0;c[t>>2]=(c[t>>2]|0)+(o+((R(c[(c[u>>2]|0)+48>>2]&65535,b[(c[w>>2]|0)+10>>1]|0)|0)>>16));o=R(c[(c[u>>2]|0)+44>>2]>>16,b[(c[w>>2]|0)+12>>1]|0)|0;c[t>>2]=(c[t>>2]|0)+(o+((R(c[(c[u>>2]|0)+44>>2]&65535,b[(c[w>>2]|0)+12>>1]|0)|0)>>16));o=R(c[(c[u>>2]|0)+40>>2]>>16,b[(c[w>>2]|0)+14>>1]|0)|0;c[t>>2]=(c[t>>2]|0)+(o+((R(c[(c[u>>2]|0)+40>>2]&65535,b[(c[w>>2]|0)+14>>1]|0)|0)>>16));o=R(c[(c[u>>2]|0)+36>>2]>>16,b[(c[w>>2]|0)+16>>1]|0)|0;c[t>>2]=(c[t>>2]|0)+(o+((R(c[(c[u>>2]|0)+36>>2]&65535,b[(c[w>>2]|0)+16>>1]|0)|0)>>16));if(((c[t>>2]>>5)+1>>1|0)<=32767)if(((c[t>>2]>>5)+1>>1|0)<-32768)x=-32768;else x=(c[t>>2]>>5)+1>>1;else x=32767;o=c[k>>2]|0;c[k>>2]=o+2;b[o>>1]=x;c[s>>2]=(c[s>>2]|0)+(c[r>>2]|0)}y=c[k>>2]|0;l=j;return y|0}case 24:{c[s>>2]=0;while(1){if((c[s>>2]|0)>=(c[q>>2]|0))break;c[u>>2]=(c[m>>2]|0)+(c[s>>2]>>16<<2);x=R((c[c[u>>2]>>2]|0)+(c[(c[u>>2]|0)+92>>2]|0)>>16,b[c[n>>2]>>1]|0)|0;c[t>>2]=x+((R((c[c[u>>2]>>2]|0)+(c[(c[u>>2]|0)+92>>2]|0)&65535,b[c[n>>2]>>1]|0)|0)>>16);x=R((c[(c[u>>2]|0)+4>>2]|0)+(c[(c[u>>2]|0)+88>>2]|0)>>16,b[(c[n>>2]|0)+2>>1]|0)|0;c[t>>2]=(c[t>>2]|0)+(x+((R((c[(c[u>>2]|0)+4>>2]|0)+(c[(c[u>>2]|0)+88>>2]|0)&65535,b[(c[n>>2]|0)+2>>1]|0)|0)>>16));x=R((c[(c[u>>2]|0)+8>>2]|0)+(c[(c[u>>2]|0)+84>>2]|0)>>16,b[(c[n>>2]|0)+4>>1]|0)|0;c[t>>2]=(c[t>>2]|0)+(x+((R((c[(c[u>>2]|0)+8>>2]|0)+(c[(c[u>>2]|0)+84>>2]|0)&65535,b[(c[n>>2]|0)+4>>1]|0)|0)>>16));x=R((c[(c[u>>2]|0)+12>>2]|0)+(c[(c[u>>2]|0)+80>>2]|0)>>16,b[(c[n>>2]|0)+6>>1]|0)|0;c[t>>2]=(c[t>>2]|0)+(x+((R((c[(c[u>>2]|0)+12>>2]|0)+(c[(c[u>>2]|0)+80>>2]|0)&65535,b[(c[n>>2]|0)+6>>1]|0)|0)>>16));x=R((c[(c[u>>2]|0)+16>>2]|0)+(c[(c[u>>2]|0)+76>>2]|0)>>16,b[(c[n>>2]|0)+8>>1]|0)|0;c[t>>2]=(c[t>>2]|0)+(x+((R((c[(c[u>>2]|0)+16>>2]|0)+(c[(c[u>>2]|0)+76>>2]|0)&65535,b[(c[n>>2]|0)+8>>1]|0)|0)>>16));x=R((c[(c[u>>2]|0)+20>>2]|0)+(c[(c[u>>2]|0)+72>>2]|0)>>16,b[(c[n>>2]|0)+10>>1]|0)|0;c[t>>2]=(c[t>>2]|0)+(x+((R((c[(c[u>>2]|0)+20>>2]|0)+(c[(c[u>>2]|0)+72>>2]|0)&65535,b[(c[n>>2]|0)+10>>1]|0)|0)>>16));x=R((c[(c[u>>2]|0)+24>>2]|0)+(c[(c[u>>2]|0)+68>>2]|0)>>16,b[(c[n>>2]|0)+12>>1]|0)|0;c[t>>2]=(c[t>>2]|0)+(x+((R((c[(c[u>>2]|0)+24>>2]|0)+(c[(c[u>>2]|0)+68>>2]|0)&65535,b[(c[n>>2]|0)+12>>1]|0)|0)>>16));x=R((c[(c[u>>2]|0)+28>>2]|0)+(c[(c[u>>2]|0)+64>>2]|0)>>16,b[(c[n>>2]|0)+14>>1]|0)|0;c[t>>2]=(c[t>>2]|0)+(x+((R((c[(c[u>>2]|0)+28>>2]|0)+(c[(c[u>>2]|0)+64>>2]|0)&65535,b[(c[n>>2]|0)+14>>1]|0)|0)>>16));x=R((c[(c[u>>2]|0)+32>>2]|0)+(c[(c[u>>2]|0)+60>>2]|0)>>16,b[(c[n>>2]|0)+16>>1]|0)|0;c[t>>2]=(c[t>>2]|0)+(x+((R((c[(c[u>>2]|0)+32>>2]|0)+(c[(c[u>>2]|0)+60>>2]|0)&65535,b[(c[n>>2]|0)+16>>1]|0)|0)>>16));x=R((c[(c[u>>2]|0)+36>>2]|0)+(c[(c[u>>2]|0)+56>>2]|0)>>16,b[(c[n>>2]|0)+18>>1]|0)|0;c[t>>2]=(c[t>>2]|0)+(x+((R((c[(c[u>>2]|0)+36>>2]|0)+(c[(c[u>>2]|0)+56>>2]|0)&65535,b[(c[n>>2]|0)+18>>1]|0)|0)>>16));x=R((c[(c[u>>2]|0)+40>>2]|0)+(c[(c[u>>2]|0)+52>>2]|0)>>16,b[(c[n>>2]|0)+20>>1]|0)|0;c[t>>2]=(c[t>>2]|0)+(x+((R((c[(c[u>>2]|0)+40>>2]|0)+(c[(c[u>>2]|0)+52>>2]|0)&65535,b[(c[n>>2]|0)+20>>1]|0)|0)>>16));x=R((c[(c[u>>2]|0)+44>>2]|0)+(c[(c[u>>2]|0)+48>>2]|0)>>16,b[(c[n>>2]|0)+22>>1]|0)|0;c[t>>2]=(c[t>>2]|0)+(x+((R((c[(c[u>>2]|0)+44>>2]|0)+(c[(c[u>>2]|0)+48>>2]|0)&65535,b[(c[n>>2]|0)+22>>1]|0)|0)>>16));if(((c[t>>2]>>5)+1>>1|0)<=32767)if(((c[t>>2]>>5)+1>>1|0)<-32768)z=-32768;else z=(c[t>>2]>>5)+1>>1;else z=32767;x=c[k>>2]|0;c[k>>2]=x+2;b[x>>1]=z;c[s>>2]=(c[s>>2]|0)+(c[r>>2]|0)}y=c[k>>2]|0;l=j;return y|0}case 36:{c[s>>2]=0;while(1){if((c[s>>2]|0)>=(c[q>>2]|0))break;c[u>>2]=(c[m>>2]|0)+(c[s>>2]>>16<<2);z=R((c[c[u>>2]>>2]|0)+(c[(c[u>>2]|0)+140>>2]|0)>>16,b[c[n>>2]>>1]|0)|0;c[t>>2]=z+((R((c[c[u>>2]>>2]|0)+(c[(c[u>>2]|0)+140>>2]|0)&65535,b[c[n>>2]>>1]|0)|0)>>16);z=R((c[(c[u>>2]|0)+4>>2]|0)+(c[(c[u>>2]|0)+136>>2]|0)>>16,b[(c[n>>2]|0)+2>>1]|0)|0;c[t>>2]=(c[t>>2]|0)+(z+((R((c[(c[u>>2]|0)+4>>2]|0)+(c[(c[u>>2]|0)+136>>2]|0)&65535,b[(c[n>>2]|0)+2>>1]|0)|0)>>16));z=R((c[(c[u>>2]|0)+8>>2]|0)+(c[(c[u>>2]|0)+132>>2]|0)>>16,b[(c[n>>2]|0)+4>>1]|0)|0;c[t>>2]=(c[t>>2]|0)+(z+((R((c[(c[u>>2]|0)+8>>2]|0)+(c[(c[u>>2]|0)+132>>2]|0)&65535,b[(c[n>>2]|0)+4>>1]|0)|0)>>16));z=R((c[(c[u>>2]|0)+12>>2]|0)+(c[(c[u>>2]|0)+128>>2]|0)>>16,b[(c[n>>2]|0)+6>>1]|0)|0;c[t>>2]=(c[t>>2]|0)+(z+((R((c[(c[u>>2]|0)+12>>2]|0)+(c[(c[u>>2]|0)+128>>2]|0)&65535,b[(c[n>>2]|0)+6>>1]|0)|0)>>16));z=R((c[(c[u>>2]|0)+16>>2]|0)+(c[(c[u>>2]|0)+124>>2]|0)>>16,b[(c[n>>2]|0)+8>>1]|0)|0;c[t>>2]=(c[t>>2]|0)+(z+((R((c[(c[u>>2]|0)+16>>2]|0)+(c[(c[u>>2]|0)+124>>2]|0)&65535,b[(c[n>>2]|0)+8>>1]|0)|0)>>16));z=R((c[(c[u>>2]|0)+20>>2]|0)+(c[(c[u>>2]|0)+120>>2]|0)>>16,b[(c[n>>2]|0)+10>>1]|0)|0;c[t>>2]=(c[t>>2]|0)+(z+((R((c[(c[u>>2]|0)+20>>2]|0)+(c[(c[u>>2]|0)+120>>2]|0)&65535,b[(c[n>>2]|0)+10>>1]|0)|0)>>16));z=R((c[(c[u>>2]|0)+24>>2]|0)+(c[(c[u>>2]|0)+116>>2]|0)>>16,b[(c[n>>2]|0)+12>>1]|0)|0;c[t>>2]=(c[t>>2]|0)+(z+((R((c[(c[u>>2]|0)+24>>2]|0)+(c[(c[u>>2]|0)+116>>2]|0)&65535,b[(c[n>>2]|0)+12>>1]|0)|0)>>16));z=R((c[(c[u>>2]|0)+28>>2]|0)+(c[(c[u>>2]|0)+112>>2]|0)>>16,b[(c[n>>2]|0)+14>>1]|0)|0;c[t>>2]=(c[t>>2]|0)+(z+((R((c[(c[u>>2]|0)+28>>2]|0)+(c[(c[u>>2]|0)+112>>2]|0)&65535,b[(c[n>>2]|0)+14>>1]|0)|0)>>16));z=R((c[(c[u>>2]|0)+32>>2]|0)+(c[(c[u>>2]|0)+108>>2]|0)>>16,b[(c[n>>2]|0)+16>>1]|0)|0;c[t>>2]=(c[t>>2]|0)+(z+((R((c[(c[u>>2]|0)+32>>2]|0)+(c[(c[u>>2]|0)+108>>2]|0)&65535,b[(c[n>>2]|0)+16>>1]|0)|0)>>16));z=R((c[(c[u>>2]|0)+36>>2]|0)+(c[(c[u>>2]|0)+104>>2]|0)>>16,b[(c[n>>2]|0)+18>>1]|0)|0;c[t>>2]=(c[t>>2]|0)+(z+((R((c[(c[u>>2]|0)+36>>2]|0)+(c[(c[u>>2]|0)+104>>2]|0)&65535,b[(c[n>>2]|0)+18>>1]|0)|0)>>16));z=R((c[(c[u>>2]|0)+40>>2]|0)+(c[(c[u>>2]|0)+100>>2]|0)>>16,b[(c[n>>2]|0)+20>>1]|0)|0;c[t>>2]=(c[t>>2]|0)+(z+((R((c[(c[u>>2]|0)+40>>2]|0)+(c[(c[u>>2]|0)+100>>2]|0)&65535,b[(c[n>>2]|0)+20>>1]|0)|0)>>16));z=R((c[(c[u>>2]|0)+44>>2]|0)+(c[(c[u>>2]|0)+96>>2]|0)>>16,b[(c[n>>2]|0)+22>>1]|0)|0;c[t>>2]=(c[t>>2]|0)+(z+((R((c[(c[u>>2]|0)+44>>2]|0)+(c[(c[u>>2]|0)+96>>2]|0)&65535,b[(c[n>>2]|0)+22>>1]|0)|0)>>16));z=R((c[(c[u>>2]|0)+48>>2]|0)+(c[(c[u>>2]|0)+92>>2]|0)>>16,b[(c[n>>2]|0)+24>>1]|0)|0;c[t>>2]=(c[t>>2]|0)+(z+((R((c[(c[u>>2]|0)+48>>2]|0)+(c[(c[u>>2]|0)+92>>2]|0)&65535,b[(c[n>>2]|0)+24>>1]|0)|0)>>16));z=R((c[(c[u>>2]|0)+52>>2]|0)+(c[(c[u>>2]|0)+88>>2]|0)>>16,b[(c[n>>2]|0)+26>>1]|0)|0;c[t>>2]=(c[t>>2]|0)+(z+((R((c[(c[u>>2]|0)+52>>2]|0)+(c[(c[u>>2]|0)+88>>2]|0)&65535,b[(c[n>>2]|0)+26>>1]|0)|0)>>16));z=R((c[(c[u>>2]|0)+56>>2]|0)+(c[(c[u>>2]|0)+84>>2]|0)>>16,b[(c[n>>2]|0)+28>>1]|0)|0;c[t>>2]=(c[t>>2]|0)+(z+((R((c[(c[u>>2]|0)+56>>2]|0)+(c[(c[u>>2]|0)+84>>2]|0)&65535,b[(c[n>>2]|0)+28>>1]|0)|0)>>16));z=R((c[(c[u>>2]|0)+60>>2]|0)+(c[(c[u>>2]|0)+80>>2]|0)>>16,b[(c[n>>2]|0)+30>>1]|0)|0;c[t>>2]=(c[t>>2]|0)+(z+((R((c[(c[u>>2]|0)+60>>2]|0)+(c[(c[u>>2]|0)+80>>2]|0)&65535,b[(c[n>>2]|0)+30>>1]|0)|0)>>16));z=R((c[(c[u>>2]|0)+64>>2]|0)+(c[(c[u>>2]|0)+76>>2]|0)>>16,b[(c[n>>2]|0)+32>>1]|0)|0;c[t>>2]=(c[t>>2]|0)+(z+((R((c[(c[u>>2]|0)+64>>2]|0)+(c[(c[u>>2]|0)+76>>2]|0)&65535,b[(c[n>>2]|0)+32>>1]|0)|0)>>16));z=R((c[(c[u>>2]|0)+68>>2]|0)+(c[(c[u>>2]|0)+72>>2]|0)>>16,b[(c[n>>2]|0)+34>>1]|0)|0;c[t>>2]=(c[t>>2]|0)+(z+((R((c[(c[u>>2]|0)+68>>2]|0)+(c[(c[u>>2]|0)+72>>2]|0)&65535,b[(c[n>>2]|0)+34>>1]|0)|0)>>16));if(((c[t>>2]>>5)+1>>1|0)<=32767)if(((c[t>>2]>>5)+1>>1|0)<-32768)A=-32768;else A=(c[t>>2]>>5)+1>>1;else A=32767;z=c[k>>2]|0;c[k>>2]=z+2;b[z>>1]=A;c[s>>2]=(c[s>>2]|0)+(c[r>>2]|0)}y=c[k>>2]|0;l=j;return y|0}default:{y=c[k>>2]|0;l=j;return y|0}}return 0}function Jd(a,d,e,f){a=a|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;g=l;l=l+48|0;h=g+36|0;i=g+32|0;j=g+28|0;k=g+24|0;m=g+20|0;n=g+16|0;o=g+12|0;p=g+8|0;q=g+4|0;r=g;c[h>>2]=a;c[i>>2]=d;c[j>>2]=e;c[k>>2]=f;c[m>>2]=0;while(1){if((c[m>>2]|0)>=(c[k>>2]|0))break;c[n>>2]=b[(c[j>>2]|0)+(c[m>>2]<<1)>>1]<<10;c[q>>2]=(c[n>>2]|0)-(c[c[h>>2]>>2]|0);f=R(c[q>>2]>>16,b[10257]|0)|0;c[r>>2]=f+((R(c[q>>2]&65535,b[10257]|0)|0)>>16);c[o>>2]=(c[c[h>>2]>>2]|0)+(c[r>>2]|0);c[c[h>>2]>>2]=(c[n>>2]|0)+(c[r>>2]|0);c[q>>2]=(c[o>>2]|0)-(c[(c[h>>2]|0)+4>>2]|0);f=R(c[q>>2]>>16,b[10258]|0)|0;c[r>>2]=f+((R(c[q>>2]&65535,b[10258]|0)|0)>>16);c[p>>2]=(c[(c[h>>2]|0)+4>>2]|0)+(c[r>>2]|0);c[(c[h>>2]|0)+4>>2]=(c[o>>2]|0)+(c[r>>2]|0);c[q>>2]=(c[p>>2]|0)-(c[(c[h>>2]|0)+8>>2]|0);f=R(c[q>>2]>>16,b[10259]|0)|0;c[r>>2]=(c[q>>2]|0)+(f+((R(c[q>>2]&65535,b[10259]|0)|0)>>16));c[o>>2]=(c[(c[h>>2]|0)+8>>2]|0)+(c[r>>2]|0);c[(c[h>>2]|0)+8>>2]=(c[p>>2]|0)+(c[r>>2]|0);if(((c[o>>2]>>9)+1>>1|0)<=32767)if(((c[o>>2]>>9)+1>>1|0)<-32768)s=-32768;else s=(c[o>>2]>>9)+1>>1;else s=32767;b[(c[i>>2]|0)+(c[m>>2]<<1<<1)>>1]=s;c[q>>2]=(c[n>>2]|0)-(c[(c[h>>2]|0)+12>>2]|0);f=R(c[q>>2]>>16,b[10260]|0)|0;c[r>>2]=f+((R(c[q>>2]&65535,b[10260]|0)|0)>>16);c[o>>2]=(c[(c[h>>2]|0)+12>>2]|0)+(c[r>>2]|0);c[(c[h>>2]|0)+12>>2]=(c[n>>2]|0)+(c[r>>2]|0);c[q>>2]=(c[o>>2]|0)-(c[(c[h>>2]|0)+16>>2]|0);f=R(c[q>>2]>>16,b[10261]|0)|0;c[r>>2]=f+((R(c[q>>2]&65535,b[10261]|0)|0)>>16);c[p>>2]=(c[(c[h>>2]|0)+16>>2]|0)+(c[r>>2]|0);c[(c[h>>2]|0)+16>>2]=(c[o>>2]|0)+(c[r>>2]|0);c[q>>2]=(c[p>>2]|0)-(c[(c[h>>2]|0)+20>>2]|0);f=R(c[q>>2]>>16,b[10262]|0)|0;c[r>>2]=(c[q>>2]|0)+(f+((R(c[q>>2]&65535,b[10262]|0)|0)>>16));c[o>>2]=(c[(c[h>>2]|0)+20>>2]|0)+(c[r>>2]|0);c[(c[h>>2]|0)+20>>2]=(c[p>>2]|0)+(c[r>>2]|0);if(((c[o>>2]>>9)+1>>1|0)<=32767)if(((c[o>>2]>>9)+1>>1|0)<-32768)t=-32768;else t=(c[o>>2]>>9)+1>>1;else t=32767;b[(c[i>>2]|0)+((c[m>>2]<<1)+1<<1)>>1]=t;c[m>>2]=(c[m>>2]|0)+1}l=g;return}function Kd(a,d,e,f){a=a|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0;g=l;l=l+32|0;h=g+28|0;i=g+24|0;j=g+20|0;k=g+16|0;m=g+12|0;n=g+8|0;o=g+4|0;p=g;c[h>>2]=a;c[i>>2]=d;c[j>>2]=e;c[k>>2]=f;c[m>>2]=0;while(1){if((c[m>>2]|0)>=(c[j>>2]|0))break;c[p>>2]=(((c[m>>2]&65535)>>16)*12|0)+((c[m>>2]&65535)*12>>16);c[o>>2]=(c[i>>2]|0)+(c[m>>2]>>16<<1);c[n>>2]=R(b[c[o>>2]>>1]|0,b[18294+(c[p>>2]<<3)>>1]|0)|0;c[n>>2]=(c[n>>2]|0)+(R(b[(c[o>>2]|0)+2>>1]|0,b[18294+(c[p>>2]<<3)+2>>1]|0)|0);c[n>>2]=(c[n>>2]|0)+(R(b[(c[o>>2]|0)+4>>1]|0,b[18294+(c[p>>2]<<3)+4>>1]|0)|0);c[n>>2]=(c[n>>2]|0)+(R(b[(c[o>>2]|0)+6>>1]|0,b[18294+(c[p>>2]<<3)+6>>1]|0)|0);c[n>>2]=(c[n>>2]|0)+(R(b[(c[o>>2]|0)+8>>1]|0,b[18294+(11-(c[p>>2]|0)<<3)+6>>1]|0)|0);c[n>>2]=(c[n>>2]|0)+(R(b[(c[o>>2]|0)+10>>1]|0,b[18294+(11-(c[p>>2]|0)<<3)+4>>1]|0)|0);c[n>>2]=(c[n>>2]|0)+(R(b[(c[o>>2]|0)+12>>1]|0,b[18294+(11-(c[p>>2]|0)<<3)+2>>1]|0)|0);c[n>>2]=(c[n>>2]|0)+(R(b[(c[o>>2]|0)+14>>1]|0,b[18294+(11-(c[p>>2]|0)<<3)>>1]|0)|0);if(((c[n>>2]>>14)+1>>1|0)<=32767)if(((c[n>>2]>>14)+1>>1|0)<-32768)q=-32768;else q=(c[n>>2]>>14)+1>>1;else q=32767;f=c[h>>2]|0;c[h>>2]=f+2;b[f>>1]=q;c[m>>2]=(c[m>>2]|0)+(c[k>>2]|0)}l=g;return c[h>>2]|0}function Ld(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0.0,A=0.0,B=0.0,C=0,D=0,F=0.0,G=0.0;f=l;l=l+80|0;h=f+64|0;i=f+60|0;j=f+56|0;k=f+52|0;m=f+48|0;n=f+44|0;o=f+40|0;p=f+36|0;q=f+32|0;r=f+28|0;s=f+24|0;t=f+20|0;u=f+16|0;v=f+12|0;w=f+8|0;x=f+4|0;y=f;c[h>>2]=a;c[i>>2]=b;c[j>>2]=d;c[k>>2]=e;if(!((((c[j>>2]|0)<1|(c[i>>2]|0)<1)^1)&(c[h>>2]|0)!=0&(c[k>>2]|0)!=0)){l=f;return}c[n>>2]=0;while(1){if((c[n>>2]|0)>=(R(c[i>>2]|0,c[j>>2]|0)|0))break;if(2.0<+g[(c[h>>2]|0)+(c[n>>2]<<2)>>2])z=2.0;else z=+g[(c[h>>2]|0)+(c[n>>2]<<2)>>2];if(!(-2.0>z))if(2.0<+g[(c[h>>2]|0)+(c[n>>2]<<2)>>2])A=2.0;else A=+g[(c[h>>2]|0)+(c[n>>2]<<2)>>2];else A=-2.0;g[(c[h>>2]|0)+(c[n>>2]<<2)>>2]=A;c[n>>2]=(c[n>>2]|0)+1}c[m>>2]=0;while(1){if((c[m>>2]|0)>=(c[j>>2]|0))break;c[o>>2]=(c[h>>2]|0)+(c[m>>2]<<2);g[p>>2]=+g[(c[k>>2]|0)+(c[m>>2]<<2)>>2];c[n>>2]=0;while(1){if((c[n>>2]|0)>=(c[i>>2]|0))break;A=+g[(c[o>>2]|0)+((R(c[n>>2]|0,c[j>>2]|0)|0)<<2)>>2];if(A*+g[p>>2]>=0.0)break;A=+g[(c[o>>2]|0)+((R(c[n>>2]|0,c[j>>2]|0)|0)<<2)>>2];z=+g[p>>2]*+g[(c[o>>2]|0)+((R(c[n>>2]|0,c[j>>2]|0)|0)<<2)>>2];B=A+z*+g[(c[o>>2]|0)+((R(c[n>>2]|0,c[j>>2]|0)|0)<<2)>>2];g[(c[o>>2]|0)+((R(c[n>>2]|0,c[j>>2]|0)|0)<<2)>>2]=B;c[n>>2]=(c[n>>2]|0)+1}c[r>>2]=0;g[q>>2]=+g[c[o>>2]>>2];do{c[v>>2]=0;c[n>>2]=c[r>>2];while(1){if((c[n>>2]|0)>=(c[i>>2]|0))break;if(+g[(c[o>>2]|0)+((R(c[n>>2]|0,c[j>>2]|0)|0)<<2)>>2]>1.0)break;if(+g[(c[o>>2]|0)+((R(c[n>>2]|0,c[j>>2]|0)|0)<<2)>>2]<-1.0)break;c[n>>2]=(c[n>>2]|0)+1}if((c[n>>2]|0)==(c[i>>2]|0)){C=23;break}c[w>>2]=c[n>>2];e=c[n>>2]|0;c[t>>2]=e;c[s>>2]=e;g[u>>2]=+E(+(+g[(c[o>>2]|0)+((R(c[n>>2]|0,c[j>>2]|0)|0)<<2)>>2]));while(1){if((c[s>>2]|0)<=0)break;B=+g[(c[o>>2]|0)+((R(c[n>>2]|0,c[j>>2]|0)|0)<<2)>>2];if(!(B*+g[(c[o>>2]|0)+((R((c[s>>2]|0)-1|0,c[j>>2]|0)|0)<<2)>>2]>=0.0))break;c[s>>2]=(c[s>>2]|0)+-1}while(1){if((c[t>>2]|0)>=(c[i>>2]|0))break;B=+g[(c[o>>2]|0)+((R(c[n>>2]|0,c[j>>2]|0)|0)<<2)>>2];if(!(B*+g[(c[o>>2]|0)+((R(c[t>>2]|0,c[j>>2]|0)|0)<<2)>>2]>=0.0))break;B=+E(+(+g[(c[o>>2]|0)+((R(c[t>>2]|0,c[j>>2]|0)|0)<<2)>>2]));if(B>+g[u>>2]){g[u>>2]=+E(+(+g[(c[o>>2]|0)+((R(c[t>>2]|0,c[j>>2]|0)|0)<<2)>>2]));c[w>>2]=c[t>>2]}c[t>>2]=(c[t>>2]|0)+1}if(!(c[s>>2]|0)){B=+g[(c[o>>2]|0)+((R(c[n>>2]|0,c[j>>2]|0)|0)<<2)>>2];D=B*+g[c[o>>2]>>2]>=0.0}else D=0;c[v>>2]=D&1;g[p>>2]=(+g[u>>2]-1.0)/(+g[u>>2]*+g[u>>2]);if(+g[(c[o>>2]|0)+((R(c[n>>2]|0,c[j>>2]|0)|0)<<2)>>2]>0.0)g[p>>2]=-+g[p>>2];c[n>>2]=c[s>>2];while(1){if((c[n>>2]|0)>=(c[t>>2]|0))break;B=+g[(c[o>>2]|0)+((R(c[n>>2]|0,c[j>>2]|0)|0)<<2)>>2];z=+g[p>>2]*+g[(c[o>>2]|0)+((R(c[n>>2]|0,c[j>>2]|0)|0)<<2)>>2];A=B+z*+g[(c[o>>2]|0)+((R(c[n>>2]|0,c[j>>2]|0)|0)<<2)>>2];g[(c[o>>2]|0)+((R(c[n>>2]|0,c[j>>2]|0)|0)<<2)>>2]=A;c[n>>2]=(c[n>>2]|0)+1}a:do if((c[v>>2]|0)!=0&(c[w>>2]|0)>=2){g[y>>2]=+g[q>>2]-+g[c[o>>2]>>2];g[x>>2]=+g[y>>2]/+(c[w>>2]|0);c[n>>2]=c[r>>2];while(1){if((c[n>>2]|0)>=(c[w>>2]|0))break a;g[y>>2]=+g[y>>2]-+g[x>>2];e=(c[o>>2]|0)+((R(c[n>>2]|0,c[j>>2]|0)|0)<<2)|0;g[e>>2]=+g[e>>2]+ +g[y>>2];if(1.0<+g[(c[o>>2]|0)+((R(c[n>>2]|0,c[j>>2]|0)|0)<<2)>>2])F=1.0;else F=+g[(c[o>>2]|0)+((R(c[n>>2]|0,c[j>>2]|0)|0)<<2)>>2];if(!(-1.0>F))if(1.0<+g[(c[o>>2]|0)+((R(c[n>>2]|0,c[j>>2]|0)|0)<<2)>>2])G=1.0;else G=+g[(c[o>>2]|0)+((R(c[n>>2]|0,c[j>>2]|0)|0)<<2)>>2];else G=-1.0;g[(c[o>>2]|0)+((R(c[n>>2]|0,c[j>>2]|0)|0)<<2)>>2]=G;c[n>>2]=(c[n>>2]|0)+1}}while(0);c[r>>2]=c[t>>2]}while((c[r>>2]|0)!=(c[i>>2]|0));if((C|0)==23){C=0;g[p>>2]=0.0}g[(c[k>>2]|0)+(c[m>>2]<<2)>>2]=+g[p>>2];c[m>>2]=(c[m>>2]|0)+1}l=f;return}function Md(a,b){a=a|0;b=b|0;var e=0,f=0,g=0,h=0,i=0;e=l;l=l+16|0;f=e+8|0;g=e+4|0;h=e;c[f>>2]=a;c[g>>2]=b;b=d[c[f>>2]>>0]|0;if((d[c[f>>2]>>0]|0)&128|0){c[h>>2]=b>>3&3;c[h>>2]=(c[g>>2]<<c[h>>2]|0)/400|0;i=c[h>>2]|0;l=e;return i|0}a=d[c[f>>2]>>0]|0;if((b&96|0)==96){c[h>>2]=(c[g>>2]|0)/((a&8|0?50:100)|0)|0;i=c[h>>2]|0;l=e;return i|0}c[h>>2]=a>>3&3;a=c[g>>2]|0;if((c[h>>2]|0)==3){c[h>>2]=(a*60|0)/1e3|0;i=c[h>>2]|0;l=e;return i|0}else{c[h>>2]=(a<<c[h>>2]|0)/100|0;i=c[h>>2]|0;l=e;return i|0}return 0}function Nd(e,f,g,h,i,j,k,m){e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;k=k|0;m=m|0;var n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0;n=l;l=l+80|0;o=n+72|0;p=n+68|0;q=n+64|0;r=n+60|0;s=n+56|0;t=n+52|0;u=n+48|0;v=n+44|0;w=n+40|0;x=n+36|0;y=n+32|0;z=n+28|0;A=n+24|0;B=n+77|0;C=n+76|0;D=n+20|0;E=n+16|0;F=n+12|0;G=n+8|0;H=n+4|0;I=n;c[p>>2]=e;c[q>>2]=f;c[r>>2]=g;c[s>>2]=h;c[t>>2]=i;c[u>>2]=j;c[v>>2]=k;c[w>>2]=m;c[F>>2]=0;c[G>>2]=c[p>>2];if(!(c[u>>2]|0)){c[o>>2]=-1;J=c[o>>2]|0;l=n;return J|0}c[D>>2]=Md(c[p>>2]|0,48e3)|0;c[A>>2]=0;m=c[p>>2]|0;c[p>>2]=m+1;a[C>>0]=a[m>>0]|0;c[q>>2]=(c[q>>2]|0)+-1;c[E>>2]=c[q>>2];a:do switch(d[C>>0]&3|0){case 0:{c[z>>2]=1;break}case 1:{c[z>>2]=2;c[A>>2]=1;if(!(c[r>>2]|0)){if(!(c[q>>2]&1)){c[E>>2]=(c[q>>2]|0)/2|0;b[c[u>>2]>>1]=c[E>>2];break a}c[o>>2]=-4;J=c[o>>2]|0;l=n;return J|0}break}case 2:{c[z>>2]=2;c[y>>2]=Od(c[p>>2]|0,c[q>>2]|0,c[u>>2]|0)|0;c[q>>2]=(c[q>>2]|0)-(c[y>>2]|0);if((b[c[u>>2]>>1]|0)>=0?(b[c[u>>2]>>1]|0)<=(c[q>>2]|0):0){c[p>>2]=(c[p>>2]|0)+(c[y>>2]|0);c[E>>2]=(c[q>>2]|0)-(b[c[u>>2]>>1]|0);break a}c[o>>2]=-4;J=c[o>>2]|0;l=n;return J|0}default:{if((c[q>>2]|0)<1){c[o>>2]=-4;J=c[o>>2]|0;l=n;return J|0}m=c[p>>2]|0;c[p>>2]=m+1;a[B>>0]=a[m>>0]|0;c[z>>2]=d[B>>0]&63;if((c[z>>2]|0)>0?(R(c[D>>2]|0,c[z>>2]|0)|0)<=5760:0){c[q>>2]=(c[q>>2]|0)+-1;b:do if(d[B>>0]&64|0){while(1){if((c[q>>2]|0)<=0)break;m=c[p>>2]|0;c[p>>2]=m+1;c[H>>2]=d[m>>0];c[q>>2]=(c[q>>2]|0)+-1;c[I>>2]=(c[H>>2]|0)==255?254:c[H>>2]|0;c[q>>2]=(c[q>>2]|0)-(c[I>>2]|0);c[F>>2]=(c[F>>2]|0)+(c[I>>2]|0);if((c[H>>2]|0)!=255)break b}c[o>>2]=-4;J=c[o>>2]|0;l=n;return J|0}while(0);if((c[q>>2]|0)<0){c[o>>2]=-4;J=c[o>>2]|0;l=n;return J|0}c[A>>2]=((d[B>>0]&128|0)!=0^1)&1;if(c[A>>2]|0){if(c[r>>2]|0)break a;c[E>>2]=(c[q>>2]|0)/(c[z>>2]|0)|0;m=R(c[E>>2]|0,c[z>>2]|0)|0;if((m|0)!=(c[q>>2]|0)){c[o>>2]=-4;J=c[o>>2]|0;l=n;return J|0}c[x>>2]=0;while(1){if((c[x>>2]|0)>=((c[z>>2]|0)-1|0))break a;b[(c[u>>2]|0)+(c[x>>2]<<1)>>1]=c[E>>2];c[x>>2]=(c[x>>2]|0)+1}}c[E>>2]=c[q>>2];c[x>>2]=0;while(1){if((c[x>>2]|0)>=((c[z>>2]|0)-1|0))break;c[y>>2]=Od(c[p>>2]|0,c[q>>2]|0,(c[u>>2]|0)+(c[x>>2]<<1)|0)|0;c[q>>2]=(c[q>>2]|0)-(c[y>>2]|0);if((b[(c[u>>2]|0)+(c[x>>2]<<1)>>1]|0)<0){K=29;break}if((b[(c[u>>2]|0)+(c[x>>2]<<1)>>1]|0)>(c[q>>2]|0)){K=29;break}c[p>>2]=(c[p>>2]|0)+(c[y>>2]|0);c[E>>2]=(c[E>>2]|0)-((c[y>>2]|0)+(b[(c[u>>2]|0)+(c[x>>2]<<1)>>1]|0));c[x>>2]=(c[x>>2]|0)+1}if((K|0)==29){c[o>>2]=-4;J=c[o>>2]|0;l=n;return J|0}if((c[E>>2]|0)>=0)break a;c[o>>2]=-4;J=c[o>>2]|0;l=n;return J|0}c[o>>2]=-4;J=c[o>>2]|0;l=n;return J|0}}while(0);c:do if(c[r>>2]|0){c[y>>2]=Od(c[p>>2]|0,c[q>>2]|0,(c[u>>2]|0)+(c[z>>2]<<1)+-2|0)|0;c[q>>2]=(c[q>>2]|0)-(c[y>>2]|0);if((b[(c[u>>2]|0)+((c[z>>2]|0)-1<<1)>>1]|0)>=0?(b[(c[u>>2]|0)+((c[z>>2]|0)-1<<1)>>1]|0)<=(c[q>>2]|0):0){c[p>>2]=(c[p>>2]|0)+(c[y>>2]|0);if(!(c[A>>2]|0)){if(((c[y>>2]|0)+(b[(c[u>>2]|0)+((c[z>>2]|0)-1<<1)>>1]|0)|0)<=(c[E>>2]|0))break;c[o>>2]=-4;J=c[o>>2]|0;l=n;return J|0}K=R(b[(c[u>>2]|0)+((c[z>>2]|0)-1<<1)>>1]|0,c[z>>2]|0)|0;if((K|0)>(c[q>>2]|0)){c[o>>2]=-4;J=c[o>>2]|0;l=n;return J|0}c[x>>2]=0;while(1){if((c[x>>2]|0)>=((c[z>>2]|0)-1|0))break c;b[(c[u>>2]|0)+(c[x>>2]<<1)>>1]=b[(c[u>>2]|0)+((c[z>>2]|0)-1<<1)>>1]|0;c[x>>2]=(c[x>>2]|0)+1}}c[o>>2]=-4;J=c[o>>2]|0;l=n;return J|0}else{if((c[E>>2]|0)<=1275){b[(c[u>>2]|0)+((c[z>>2]|0)-1<<1)>>1]=c[E>>2];break}c[o>>2]=-4;J=c[o>>2]|0;l=n;return J|0}while(0);if(c[v>>2]|0)c[c[v>>2]>>2]=(c[p>>2]|0)-(c[G>>2]|0);c[x>>2]=0;while(1){if((c[x>>2]|0)>=(c[z>>2]|0))break;if(c[t>>2]|0)c[(c[t>>2]|0)+(c[x>>2]<<2)>>2]=c[p>>2];c[p>>2]=(c[p>>2]|0)+(b[(c[u>>2]|0)+(c[x>>2]<<1)>>1]|0);c[x>>2]=(c[x>>2]|0)+1}if(c[w>>2]|0)c[c[w>>2]>>2]=(c[F>>2]|0)+((c[p>>2]|0)-(c[G>>2]|0));if(c[s>>2]|0)a[c[s>>2]>>0]=a[C>>0]|0;c[o>>2]=c[z>>2];J=c[o>>2]|0;l=n;return J|0}function Od(a,e,f){a=a|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,m=0;g=l;l=l+16|0;h=g+12|0;i=g+8|0;j=g+4|0;k=g;c[i>>2]=a;c[j>>2]=e;c[k>>2]=f;if((c[j>>2]|0)<1){b[c[k>>2]>>1]=-1;c[h>>2]=-1;m=c[h>>2]|0;l=g;return m|0}if((d[c[i>>2]>>0]|0|0)<252){b[c[k>>2]>>1]=d[c[i>>2]>>0]|0;c[h>>2]=1;m=c[h>>2]|0;l=g;return m|0}if((c[j>>2]|0)<2){b[c[k>>2]>>1]=-1;c[h>>2]=-1;m=c[h>>2]|0;l=g;return m|0}else{b[c[k>>2]>>1]=((d[(c[i>>2]|0)+1>>0]|0)<<2)+(d[c[i>>2]>>0]|0);c[h>>2]=2;m=c[h>>2]|0;l=g;return m|0}return 0}function Pd(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,i=0;b=l;l=l+32|0;d=b+16|0;e=b+12|0;f=b+8|0;g=b+4|0;h=b;c[e>>2]=a;if((c[e>>2]|0)<1|(c[e>>2]|0)>2){c[d>>2]=0;i=c[d>>2]|0;l=b;return i|0}c[h>>2]=xd(f)|0;if(c[h>>2]|0){c[d>>2]=0;i=c[d>>2]|0;l=b;return i|0}else{c[f>>2]=Qd(c[f>>2]|0)|0;c[g>>2]=Sb(c[e>>2]|0)|0;e=Qd(84)|0;c[d>>2]=e+(c[f>>2]|0)+(c[g>>2]|0);i=c[d>>2]|0;l=b;return i|0}return 0}function Qd(a){a=a|0;var b=0,d=0;b=l;l=l+16|0;d=b;c[d>>2]=a;l=b;return (c[d>>2]|0)+4-1&-4|0}function Rd(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0;e=l;l=l+48|0;f=e;g=e+32|0;h=e+28|0;i=e+24|0;j=e+20|0;k=e+16|0;m=e+12|0;n=e+8|0;o=e+4|0;c[h>>2]=a;c[i>>2]=b;c[j>>2]=d;if(!((c[i>>2]|0)!=48e3&(c[i>>2]|0)!=24e3&(c[i>>2]|0)!=16e3&(c[i>>2]|0)!=12e3&(c[i>>2]|0)!=8e3)?!((c[j>>2]|0)!=1&(c[j>>2]|0)!=2):0){d=c[h>>2]|0;He(d|0,0,Pd(c[j>>2]|0)|0)|0;c[n>>2]=xd(o)|0;if(c[n>>2]|0){c[g>>2]=-3;p=c[g>>2]|0;l=e;return p|0}c[o>>2]=Qd(c[o>>2]|0)|0;d=Qd(84)|0;c[(c[h>>2]|0)+4>>2]=d;c[c[h>>2]>>2]=(c[(c[h>>2]|0)+4>>2]|0)+(c[o>>2]|0);c[k>>2]=(c[h>>2]|0)+(c[(c[h>>2]|0)+4>>2]|0);c[m>>2]=(c[h>>2]|0)+(c[c[h>>2]>>2]|0);o=c[j>>2]|0;c[(c[h>>2]|0)+8>>2]=o;c[(c[h>>2]|0)+44>>2]=o;c[(c[h>>2]|0)+12>>2]=c[i>>2];c[(c[h>>2]|0)+16+8>>2]=c[(c[h>>2]|0)+12>>2];c[(c[h>>2]|0)+16>>2]=c[(c[h>>2]|0)+8>>2];c[n>>2]=yd(c[k>>2]|0)|0;if(c[n>>2]|0){c[g>>2]=-3;p=c[g>>2]|0;l=e;return p|0}c[n>>2]=Ub(c[m>>2]|0,c[i>>2]|0,c[j>>2]|0)|0;if(c[n>>2]|0){c[g>>2]=-3;p=c[g>>2]|0;l=e;return p|0}else{n=c[m>>2]|0;c[f>>2]=0;Xb(n,10016,f)|0;c[(c[h>>2]|0)+56>>2]=0;c[(c[h>>2]|0)+60>>2]=(c[i>>2]|0)/400|0;c[g>>2]=0;p=c[g>>2]|0;l=e;return p|0}}c[g>>2]=-1;p=c[g>>2]|0;l=e;return p|0}function Sd(a,d,e,f,h,i,j,k,m){a=a|0;d=d|0;e=e|0;f=f|0;h=h|0;i=i|0;j=j|0;k=k|0;m=m|0;var n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0;n=l;l=l+208|0;o=n+88|0;p=n+84|0;q=n+80|0;r=n+76|0;s=n+72|0;t=n+68|0;u=n+64|0;v=n+60|0;w=n+56|0;x=n+52|0;y=n+48|0;z=n+44|0;A=n+40|0;B=n+36|0;C=n+192|0;D=n+32|0;E=n+28|0;F=n+24|0;G=n+20|0;H=n+96|0;I=n+16|0;J=n+12|0;K=n+8|0;L=n+4|0;M=n;c[p>>2]=a;c[q>>2]=d;c[r>>2]=e;c[s>>2]=f;c[t>>2]=h;c[u>>2]=i;c[v>>2]=j;c[w>>2]=k;c[x>>2]=m;if((c[u>>2]|0)<0|(c[u>>2]|0)>1){c[o>>2]=-1;N=c[o>>2]|0;l=n;return N|0}if((c[u>>2]|0)!=0|(c[r>>2]|0)==0|(c[q>>2]|0)==0?(c[t>>2]|0)%((c[(c[p>>2]|0)+12>>2]|0)/400|0|0)|0|0:0){c[o>>2]=-1;N=c[o>>2]|0;l=n;return N|0}if((c[r>>2]|0)==0|(c[q>>2]|0)==0){c[I>>2]=0;while(1){m=(c[s>>2]|0)+((R(c[I>>2]|0,c[(c[p>>2]|0)+8>>2]|0)|0)<<2)|0;c[J>>2]=Td(c[p>>2]|0,0,0,m,(c[t>>2]|0)-(c[I>>2]|0)|0,0)|0;O=c[J>>2]|0;if((c[J>>2]|0)<0){P=9;break}c[I>>2]=(c[I>>2]|0)+O;if((c[I>>2]|0)>=(c[t>>2]|0)){P=11;break}}if((P|0)==9){c[o>>2]=O;N=c[o>>2]|0;l=n;return N|0}else if((P|0)==11){Ud()|0;c[(c[p>>2]|0)+68>>2]=c[I>>2];c[o>>2]=c[I>>2];N=c[o>>2]|0;l=n;return N|0}}if((c[r>>2]|0)<0){c[o>>2]=-1;N=c[o>>2]|0;l=n;return N|0}c[F>>2]=Vd(c[q>>2]|0)|0;c[E>>2]=Wd(c[q>>2]|0)|0;c[D>>2]=Md(c[q>>2]|0,c[(c[p>>2]|0)+12>>2]|0)|0;c[G>>2]=Xd(c[q>>2]|0)|0;c[A>>2]=Nd(c[q>>2]|0,c[r>>2]|0,c[v>>2]|0,C,0,H,B,c[w>>2]|0)|0;if((c[A>>2]|0)<0){c[o>>2]=c[A>>2];N=c[o>>2]|0;l=n;return N|0}c[q>>2]=(c[q>>2]|0)+(c[B>>2]|0);if(c[u>>2]|0){if(!((c[F>>2]|0)==1002?1:(c[t>>2]|0)<(c[D>>2]|0))?(c[(c[p>>2]|0)+52>>2]|0)!=1002:0){c[K>>2]=c[(c[p>>2]|0)+68>>2];if((c[t>>2]|0)-(c[D>>2]|0)|0?(c[L>>2]=Sd(c[p>>2]|0,0,0,c[s>>2]|0,(c[t>>2]|0)-(c[D>>2]|0)|0,0,0,0,c[x>>2]|0)|0,(c[L>>2]|0)<0):0){c[(c[p>>2]|0)+68>>2]=c[K>>2];c[o>>2]=c[L>>2];N=c[o>>2]|0;l=n;return N|0}c[(c[p>>2]|0)+52>>2]=c[F>>2];c[(c[p>>2]|0)+48>>2]=c[E>>2];c[(c[p>>2]|0)+60>>2]=c[D>>2];c[(c[p>>2]|0)+44>>2]=c[G>>2];K=(c[s>>2]|0)+((R(c[(c[p>>2]|0)+8>>2]|0,(c[t>>2]|0)-(c[D>>2]|0)|0)|0)<<2)|0;c[L>>2]=Td(c[p>>2]|0,c[q>>2]|0,b[H>>1]|0,K,c[D>>2]|0,1)|0;if((c[L>>2]|0)<0){c[o>>2]=c[L>>2];N=c[o>>2]|0;l=n;return N|0}else{Ud()|0;c[(c[p>>2]|0)+68>>2]=c[t>>2];c[o>>2]=c[t>>2];N=c[o>>2]|0;l=n;return N|0}}c[o>>2]=Sd(c[p>>2]|0,0,0,c[s>>2]|0,c[t>>2]|0,0,0,0,c[x>>2]|0)|0;N=c[o>>2]|0;l=n;return N|0}L=R(c[A>>2]|0,c[D>>2]|0)|0;if((L|0)>(c[t>>2]|0)){c[o>>2]=-2;N=c[o>>2]|0;l=n;return N|0}c[(c[p>>2]|0)+52>>2]=c[F>>2];c[(c[p>>2]|0)+48>>2]=c[E>>2];c[(c[p>>2]|0)+60>>2]=c[D>>2];c[(c[p>>2]|0)+44>>2]=c[G>>2];c[z>>2]=0;c[y>>2]=0;while(1){if((c[y>>2]|0)>=(c[A>>2]|0))break;G=(c[s>>2]|0)+((R(c[z>>2]|0,c[(c[p>>2]|0)+8>>2]|0)|0)<<2)|0;c[M>>2]=Td(c[p>>2]|0,c[q>>2]|0,b[H+(c[y>>2]<<1)>>1]|0,G,(c[t>>2]|0)-(c[z>>2]|0)|0,0)|0;if((c[M>>2]|0)<0){P=31;break}c[q>>2]=(c[q>>2]|0)+(b[H+(c[y>>2]<<1)>>1]|0);c[z>>2]=(c[z>>2]|0)+(c[M>>2]|0);c[y>>2]=(c[y>>2]|0)+1}if((P|0)==31){c[o>>2]=c[M>>2];N=c[o>>2]|0;l=n;return N|0}c[(c[p>>2]|0)+68>>2]=c[z>>2];Ud()|0;if(c[x>>2]|0)Ld(c[s>>2]|0,c[z>>2]|0,c[(c[p>>2]|0)+8>>2]|0,(c[p>>2]|0)+72|0);else{g[(c[p>>2]|0)+72+4>>2]=0.0;g[(c[p>>2]|0)+72>>2]=0.0}c[o>>2]=c[z>>2];N=c[o>>2]|0;l=n;return N|0}function Td(d,e,f,h,i,j){d=d|0;e=e|0;f=f|0;h=h|0;i=i|0;j=j|0;var k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,P=0,Q=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,$=0,aa=0,ba=0,ca=0,ea=0,fa=0,ha=0,ia=0,ja=0,ka=0,la=0,ma=0,na=0,oa=0,pa=0,qa=0,ra=0,sa=0,ta=0,ua=0,va=0,wa=0,xa=0,ya=0,za=0,Aa=0,Ba=0,Ca=0,Da=0,Ea=0,Fa=0,Ga=0,Ha=0,Ia=0;k=l;l=l+320|0;m=k+80|0;n=k+72|0;o=k+64|0;p=k+56|0;q=k+48|0;r=k+40|0;s=k+32|0;t=k+24|0;u=k+16|0;v=k+8|0;w=k;x=k+308|0;y=k+304|0;z=k+300|0;A=k+296|0;B=k+292|0;C=k+288|0;D=k+284|0;E=k+280|0;F=k+276|0;G=k+272|0;H=k+268|0;I=k+264|0;J=k+216|0;K=k+212|0;L=k+208|0;M=k+204|0;N=k+200|0;P=k+196|0;Q=k+192|0;S=k+188|0;T=k+184|0;U=k+180|0;V=k+176|0;W=k+172|0;X=k+168|0;Y=k+164|0;Z=k+160|0;_=k+156|0;$=k+152|0;aa=k+148|0;ba=k+144|0;ca=k+140|0;ea=k+136|0;fa=k+132|0;ha=k+128|0;ia=k+124|0;ja=k+120|0;ka=k+116|0;la=k+112|0;ma=k+108|0;na=k+104|0;oa=k+100|0;pa=k+96|0;qa=k+312|0;ra=k+92|0;sa=k+88|0;ta=k+84|0;c[y>>2]=d;c[z>>2]=e;c[A>>2]=f;c[B>>2]=h;c[C>>2]=i;c[D>>2]=j;c[H>>2]=0;c[I>>2]=0;c[P>>2]=0;c[U>>2]=0;c[W>>2]=0;c[X>>2]=0;c[Y>>2]=0;c[ea>>2]=0;c[E>>2]=(c[y>>2]|0)+(c[(c[y>>2]|0)+4>>2]|0);c[F>>2]=(c[y>>2]|0)+(c[c[y>>2]>>2]|0);c[ba>>2]=(c[(c[y>>2]|0)+12>>2]|0)/50|0;c[aa>>2]=c[ba>>2]>>1;c[$>>2]=c[aa>>2]>>1;c[_>>2]=c[$>>2]>>1;if((c[C>>2]|0)<(c[_>>2]|0)){c[x>>2]=-2;ua=c[x>>2]|0;l=k;return ua|0}if((c[C>>2]|0)<(((c[(c[y>>2]|0)+12>>2]|0)/25|0)*3|0))va=c[C>>2]|0;else va=((c[(c[y>>2]|0)+12>>2]|0)/25|0)*3|0;c[C>>2]=va;if((c[A>>2]|0)<=1){c[z>>2]=0;if((c[C>>2]|0)<(c[(c[y>>2]|0)+60>>2]|0))wa=c[C>>2]|0;else wa=c[(c[y>>2]|0)+60>>2]|0;c[C>>2]=wa}do if(!(c[z>>2]|0)){c[S>>2]=c[C>>2];c[T>>2]=c[(c[y>>2]|0)+56>>2];if(!(c[T>>2]|0)){c[G>>2]=0;while(1){if((c[G>>2]|0)>=(R(c[S>>2]|0,c[(c[y>>2]|0)+8>>2]|0)|0))break;g[(c[B>>2]|0)+(c[G>>2]<<2)>>2]=0.0;c[G>>2]=(c[G>>2]|0)+1}c[x>>2]=c[S>>2];ua=c[x>>2]|0;l=k;return ua|0}if((c[S>>2]|0)>(c[ba>>2]|0)){while(1){c[ha>>2]=Td(c[y>>2]|0,0,0,c[B>>2]|0,(c[S>>2]|0)<(c[ba>>2]|0)?c[S>>2]|0:c[ba>>2]|0,0)|0;xa=c[ha>>2]|0;if((c[ha>>2]|0)<0){ya=20;break}wa=R(xa,c[(c[y>>2]|0)+8>>2]|0)|0;c[B>>2]=(c[B>>2]|0)+(wa<<2);c[S>>2]=(c[S>>2]|0)-(c[ha>>2]|0);if((c[S>>2]|0)<=0){ya=22;break}}if((ya|0)==20){c[x>>2]=xa;ua=c[x>>2]|0;l=k;return ua|0}else if((ya|0)==22){c[x>>2]=c[C>>2];ua=c[x>>2]|0;l=k;return ua|0}}if((c[S>>2]|0)<(c[ba>>2]|0)){if((c[S>>2]|0)>(c[aa>>2]|0)){c[S>>2]=c[aa>>2];break}if(((c[T>>2]|0)!=1e3?(c[S>>2]|0)>(c[$>>2]|0):0)?(c[S>>2]|0)<(c[aa>>2]|0):0)c[S>>2]=c[$>>2]}}else{c[S>>2]=c[(c[y>>2]|0)+60>>2];c[T>>2]=c[(c[y>>2]|0)+52>>2];$b(J,c[z>>2]|0,c[A>>2]|0)}while(0);c[fa>>2]=0;c[M>>2]=1;c[N>>2]=1;do if(c[z>>2]|0?(c[(c[y>>2]|0)+56>>2]|0)>0:0){if(!(((c[T>>2]|0)==1002?(c[(c[y>>2]|0)+56>>2]|0)!=1002:0)?!(c[(c[y>>2]|0)+64>>2]|0):0)){if((c[T>>2]|0)==1002)break;if((c[(c[y>>2]|0)+56>>2]|0)!=1002)break}c[U>>2]=1;ya=R(c[$>>2]|0,c[(c[y>>2]|0)+8>>2]|0)|0;if((c[T>>2]|0)==1002){c[N>>2]=ya;break}else{c[M>>2]=ya;break}}while(0);ya=c[N>>2]|0;c[ia>>2]=da()|0;N=l;l=l+((1*(ya<<2)|0)+15&-16)|0;if((c[U>>2]|0)!=0&(c[T>>2]|0)==1002){c[P>>2]=N;Td(c[y>>2]|0,0,0,c[P>>2]|0,(c[$>>2]|0)<(c[S>>2]|0)?c[$>>2]|0:c[S>>2]|0,0)|0}a:do if((c[S>>2]|0)>(c[C>>2]|0)){c[x>>2]=-1;c[ja>>2]=1}else{c[C>>2]=c[S>>2];if((c[T>>2]|0)==1002|(c[fa>>2]|0)!=0)za=1;else za=R((c[aa>>2]|0)>(c[C>>2]|0)?c[aa>>2]|0:c[C>>2]|0,c[(c[y>>2]|0)+8>>2]|0)|0;c[L>>2]=za;N=l;l=l+((1*(c[L>>2]<<1)|0)+15&-16)|0;b:do if((c[T>>2]|0)!=1002){c[ma>>2]=N;if((c[(c[y>>2]|0)+56>>2]|0)==1002)yd(c[E>>2]|0)|0;if(10>(((c[S>>2]|0)*1e3|0)/(c[(c[y>>2]|0)+12>>2]|0)|0|0))Aa=10;else Aa=((c[S>>2]|0)*1e3|0)/(c[(c[y>>2]|0)+12>>2]|0)|0;c[(c[y>>2]|0)+16+16>>2]=Aa;if(c[z>>2]|0){c[(c[y>>2]|0)+16+4>>2]=c[(c[y>>2]|0)+44>>2];ya=c[y>>2]|0;if((c[T>>2]|0)==1e3){xa=c[y>>2]|0;if((c[ya+48>>2]|0)==1101){Ba=8e3;Ca=xa}else{ha=(c[xa+48>>2]|0)==1102;Ba=ha?12e3:16e3;Ca=ha?c[y>>2]|0:c[y>>2]|0}}else{Ba=16e3;Ca=ya}c[Ca+16+12>>2]=Ba}c[ka>>2]=(c[z>>2]|0)==0?1:c[D>>2]<<1;c[la>>2]=0;c:while(1){c[na>>2]=(c[la>>2]|0)==0&1;c[H>>2]=zd(c[E>>2]|0,(c[y>>2]|0)+16|0,c[ka>>2]|0,c[na>>2]|0,J,c[ma>>2]|0,K)|0;d:do if(c[H>>2]|0){if(!(c[ka>>2]|0))break c;c[K>>2]=c[C>>2];c[G>>2]=0;while(1){if((c[G>>2]|0)>=(R(c[C>>2]|0,c[(c[y>>2]|0)+8>>2]|0)|0))break d;b[(c[ma>>2]|0)+(c[G>>2]<<1)>>1]=0;c[G>>2]=(c[G>>2]|0)+1}}while(0);ya=R(c[K>>2]|0,c[(c[y>>2]|0)+8>>2]|0)|0;c[ma>>2]=(c[ma>>2]|0)+(ya<<1);c[la>>2]=(c[la>>2]|0)+(c[K>>2]|0);if((c[la>>2]|0)>=(c[C>>2]|0))break b}c[x>>2]=-3;c[ja>>2]=1;break a}while(0);c[V>>2]=0;if((c[D>>2]|0)==0&(c[T>>2]|0)!=1002&(c[z>>2]|0)!=0?(ya=(Yd(J)|0)+17|0,(ya+(((c[(c[y>>2]|0)+52>>2]|0)==1001&1)*20|0)|0)<=(c[A>>2]<<3|0)):0){if((c[T>>2]|0)==1001)c[W>>2]=Va(J,12)|0;else c[W>>2]=1;if(c[W>>2]|0){c[Y>>2]=Va(J,1)|0;if((c[T>>2]|0)==1001)Da=(Qa(J,256)|0)+2|0;else{ya=c[A>>2]|0;Da=ya-((Yd(J)|0)+7>>3)|0}c[X>>2]=Da;c[A>>2]=(c[A>>2]|0)-(c[X>>2]|0);ya=c[A>>2]<<3;if((ya|0)<(Yd(J)|0)){c[A>>2]=0;c[X>>2]=0;c[W>>2]=0}ya=J+4|0;c[ya>>2]=(c[ya>>2]|0)-(c[X>>2]|0)}}if((c[T>>2]|0)!=1002)c[V>>2]=17;c[oa>>2]=21;switch(c[(c[y>>2]|0)+48>>2]|0){case 1101:{c[oa>>2]=13;break}case 1103:case 1102:{c[oa>>2]=17;break}case 1104:{c[oa>>2]=19;break}case 1105:{c[oa>>2]=21;break}default:{}}ya=c[F>>2]|0;c[w>>2]=c[oa>>2];Xb(ya,10012,w)|0;ya=c[F>>2]|0;c[v>>2]=c[(c[y>>2]|0)+44>>2];Xb(ya,10008,v)|0;if(c[W>>2]|0){c[U>>2]=0;c[M>>2]=1}ya=l;l=l+((1*(c[M>>2]<<2)|0)+15&-16)|0;if((c[U>>2]|0)!=0&(c[T>>2]|0)!=1002){c[P>>2]=ya;Td(c[y>>2]|0,0,0,c[P>>2]|0,(c[$>>2]|0)<(c[S>>2]|0)?c[$>>2]|0:c[S>>2]|0,0)|0}if(c[W>>2]|0)Ea=R(c[$>>2]|0,c[(c[y>>2]|0)+8>>2]|0)|0;else Ea=1;c[Q>>2]=Ea;ya=l;l=l+((1*(c[Q>>2]<<2)|0)+15&-16)|0;if((c[W>>2]|0)!=0&(c[Y>>2]|0)!=0){ha=c[F>>2]|0;c[u>>2]=0;Xb(ha,10010,u)|0;Yb(c[F>>2]|0,(c[z>>2]|0)+(c[A>>2]|0)|0,c[X>>2]|0,ya,c[$>>2]|0,0,0)|0;ha=c[F>>2]|0;c[t>>2]=ea+(((ea-ea|0)/4|0)<<2);Xb(ha,4031,t)|0}ha=c[F>>2]|0;c[s>>2]=c[V>>2];Xb(ha,10010,s)|0;do if((c[T>>2]|0)==1e3){a[qa>>0]=a[25208]|0;a[qa+1>>0]=a[25209]|0;e:do if(!(c[fa>>2]|0)){c[G>>2]=0;while(1){if((c[G>>2]|0)>=(R(c[C>>2]|0,c[(c[y>>2]|0)+8>>2]|0)|0))break e;g[(c[B>>2]|0)+(c[G>>2]<<2)>>2]=0.0;c[G>>2]=(c[G>>2]|0)+1}}while(0);if((c[(c[y>>2]|0)+56>>2]|0)==1001){if((c[W>>2]|0)!=0&(c[Y>>2]|0)!=0?c[(c[y>>2]|0)+64>>2]|0:0)break;ha=c[F>>2]|0;c[q>>2]=0;Xb(ha,10010,q)|0;Yb(c[F>>2]|0,qa,2,c[B>>2]|0,c[_>>2]|0,0,c[fa>>2]|0)|0}}else{c[pa>>2]=(c[ba>>2]|0)<(c[C>>2]|0)?c[ba>>2]|0:c[C>>2]|0;do if((c[T>>2]|0)!=(c[(c[y>>2]|0)+56>>2]|0)){if((c[(c[y>>2]|0)+56>>2]|0)<=0)break;if(c[(c[y>>2]|0)+64>>2]|0)break;Xb(c[F>>2]|0,4028,r)|0}while(0);c[I>>2]=Yb(c[F>>2]|0,c[D>>2]|0?0:c[z>>2]|0,c[A>>2]|0,c[B>>2]|0,c[pa>>2]|0,J,c[fa>>2]|0)|0}while(0);f:do if(!((c[T>>2]|0)==1002|(c[fa>>2]|0)!=0)){c[G>>2]=0;while(1){if((c[G>>2]|0)>=(R(c[C>>2]|0,c[(c[y>>2]|0)+8>>2]|0)|0))break f;g[(c[B>>2]|0)+(c[G>>2]<<2)>>2]=+g[(c[B>>2]|0)+(c[G>>2]<<2)>>2]+ +(b[N+(c[G>>2]<<1)>>1]|0)*.000030517578125;c[G>>2]=(c[G>>2]|0)+1}}while(0);N=c[F>>2]|0;c[p>>2]=ra+(((ra-ra|0)/4|0)<<2);Xb(N,10015,p)|0;c[ca>>2]=c[(c[ra>>2]|0)+60>>2];if(!((c[W>>2]|0)==0|(c[Y>>2]|0)!=0)){Xb(c[F>>2]|0,4028,o)|0;N=c[F>>2]|0;c[n>>2]=0;Xb(N,10010,n)|0;Yb(c[F>>2]|0,(c[z>>2]|0)+(c[A>>2]|0)|0,c[X>>2]|0,ya,c[$>>2]|0,0,0)|0;N=c[F>>2]|0;c[m>>2]=ea+(((ea-ea|0)/4|0)<<2);Xb(N,4031,m)|0;N=(c[B>>2]|0)+((R(c[(c[y>>2]|0)+8>>2]|0,(c[C>>2]|0)-(c[_>>2]|0)|0)|0)<<2)|0;ha=ya+((R(c[(c[y>>2]|0)+8>>2]|0,c[_>>2]|0)|0)<<2)|0;xa=(c[B>>2]|0)+((R(c[(c[y>>2]|0)+8>>2]|0,(c[C>>2]|0)-(c[_>>2]|0)|0)|0)<<2)|0;Zd(N,ha,xa,c[_>>2]|0,c[(c[y>>2]|0)+8>>2]|0,c[ca>>2]|0,c[(c[y>>2]|0)+12>>2]|0)}if((c[W>>2]|0)!=0&(c[Y>>2]|0)!=0){c[Z>>2]=0;while(1){if((c[Z>>2]|0)>=(c[(c[y>>2]|0)+8>>2]|0))break;c[G>>2]=0;while(1){if((c[G>>2]|0)>=(c[_>>2]|0))break;xa=R(c[(c[y>>2]|0)+8>>2]|0,c[G>>2]|0)|0;ha=R(c[(c[y>>2]|0)+8>>2]|0,c[G>>2]|0)|0;g[(c[B>>2]|0)+(ha+(c[Z>>2]|0)<<2)>>2]=+g[ya+(xa+(c[Z>>2]|0)<<2)>>2];c[G>>2]=(c[G>>2]|0)+1}c[Z>>2]=(c[Z>>2]|0)+1}xa=ya+((R(c[(c[y>>2]|0)+8>>2]|0,c[_>>2]|0)|0)<<2)|0;ha=(c[B>>2]|0)+((R(c[(c[y>>2]|0)+8>>2]|0,c[_>>2]|0)|0)<<2)|0;N=(c[B>>2]|0)+((R(c[(c[y>>2]|0)+8>>2]|0,c[_>>2]|0)|0)<<2)|0;Zd(xa,ha,N,c[_>>2]|0,c[(c[y>>2]|0)+8>>2]|0,c[ca>>2]|0,c[(c[y>>2]|0)+12>>2]|0)}do if(c[U>>2]|0){if((c[S>>2]|0)<(c[$>>2]|0)){Zd(c[P>>2]|0,c[B>>2]|0,c[B>>2]|0,c[_>>2]|0,c[(c[y>>2]|0)+8>>2]|0,c[ca>>2]|0,c[(c[y>>2]|0)+12>>2]|0);break}c[G>>2]=0;while(1){N=(c[G>>2]|0)<(R(c[(c[y>>2]|0)+8>>2]|0,c[_>>2]|0)|0);Fa=c[P>>2]|0;if(!N)break;g[(c[B>>2]|0)+(c[G>>2]<<2)>>2]=+g[Fa+(c[G>>2]<<2)>>2];c[G>>2]=(c[G>>2]|0)+1}N=Fa+((R(c[(c[y>>2]|0)+8>>2]|0,c[_>>2]|0)|0)<<2)|0;ha=(c[B>>2]|0)+((R(c[(c[y>>2]|0)+8>>2]|0,c[_>>2]|0)|0)<<2)|0;xa=(c[B>>2]|0)+((R(c[(c[y>>2]|0)+8>>2]|0,c[_>>2]|0)|0)<<2)|0;Zd(N,ha,xa,c[_>>2]|0,c[(c[y>>2]|0)+8>>2]|0,c[ca>>2]|0,c[(c[y>>2]|0)+12>>2]|0)}while(0);g:do if(c[(c[y>>2]|0)+40>>2]|0){g[sa>>2]=+O(+(+(c[(c[y>>2]|0)+40>>2]|0)*6.488140788860619e-04*.6931471805599453));c[G>>2]=0;while(1){if((c[G>>2]|0)>=(R(c[C>>2]|0,c[(c[y>>2]|0)+8>>2]|0)|0))break g;g[ta>>2]=+g[(c[B>>2]|0)+(c[G>>2]<<2)>>2]*+g[sa>>2];g[(c[B>>2]|0)+(c[G>>2]<<2)>>2]=+g[ta>>2];c[G>>2]=(c[G>>2]|0)+1}}while(0);if((c[A>>2]|0)<=1){Ga=c[y>>2]|0;Ha=0}else{Ga=c[y>>2]|0;Ha=c[J+28>>2]^c[ea>>2]}c[Ga+80>>2]=Ha;c[(c[y>>2]|0)+56>>2]=c[T>>2];if(c[W>>2]|0)Ia=(c[Y>>2]|0)!=0^1;else Ia=0;c[(c[y>>2]|0)+64>>2]=Ia&1;if((c[I>>2]|0)>=0)Ud()|0;c[x>>2]=(c[I>>2]|0)<0?c[I>>2]|0:c[S>>2]|0;c[ja>>2]=1}while(0);ga(c[ia>>2]|0);ua=c[x>>2]|0;l=k;return ua|0}function Ud(){return 0}function Vd(a){a=a|0;var b=0,e=0,f=0;b=l;l=l+16|0;e=b+4|0;f=b;c[e>>2]=a;do if(!((d[c[e>>2]>>0]|0)&128|0))if(((d[c[e>>2]>>0]|0)&96|0)==96){c[f>>2]=1001;break}else{c[f>>2]=1e3;break}else c[f>>2]=1002;while(0);l=b;return c[f>>2]|0}function Wd(a){a=a|0;var b=0,e=0,f=0,g=0,h=0;b=l;l=l+16|0;e=b+4|0;f=b;c[e>>2]=a;a=d[c[e>>2]>>0]|0;if((d[c[e>>2]>>0]|0)&128|0){g=1102+(a>>5&3)|0;c[f>>2]=g;c[f>>2]=(c[f>>2]|0)==1102?1101:g;h=c[f>>2]|0;l=b;return h|0}g=d[c[e>>2]>>0]|0;if((a&96|0)==96){c[f>>2]=g&16|0?1105:1104;h=c[f>>2]|0;l=b;return h|0}else{c[f>>2]=1101+(g>>5&3);h=c[f>>2]|0;l=b;return h|0}return 0}function Xd(a){a=a|0;var b=0,e=0;b=l;l=l+16|0;e=b;c[e>>2]=a;l=b;return ((d[c[e>>2]>>0]|0)&4|0?2:1)|0}function Yd(a){a=a|0;var b=0,d=0;b=l;l=l+16|0;d=b;c[d>>2]=a;a=(c[(c[d>>2]|0)+20>>2]|0)-(32-(U(c[(c[d>>2]|0)+28>>2]|0)|0))|0;l=b;return a|0}function Zd(a,b,d,e,f,h,i){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;h=h|0;i=i|0;var j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0.0;j=l;l=l+48|0;k=j+40|0;m=j+36|0;n=j+32|0;o=j+28|0;p=j+24|0;q=j+20|0;r=j+16|0;s=j+12|0;t=j+8|0;u=j+4|0;v=j;c[k>>2]=a;c[m>>2]=b;c[n>>2]=d;c[o>>2]=e;c[p>>2]=f;c[q>>2]=h;c[r>>2]=i;c[u>>2]=48e3/(c[r>>2]|0)|0;c[t>>2]=0;while(1){if((c[t>>2]|0)>=(c[p>>2]|0))break;c[s>>2]=0;while(1){if((c[s>>2]|0)>=(c[o>>2]|0))break;w=+g[(c[q>>2]|0)+((R(c[s>>2]|0,c[u>>2]|0)|0)<<2)>>2];g[v>>2]=w*+g[(c[q>>2]|0)+((R(c[s>>2]|0,c[u>>2]|0)|0)<<2)>>2];r=R(c[s>>2]|0,c[p>>2]|0)|0;i=R(c[s>>2]|0,c[p>>2]|0)|0;h=R(c[s>>2]|0,c[p>>2]|0)|0;g[(c[n>>2]|0)+(h+(c[t>>2]|0)<<2)>>2]=+g[v>>2]*+g[(c[m>>2]|0)+(r+(c[t>>2]|0)<<2)>>2]+(1.0-+g[v>>2])*+g[(c[k>>2]|0)+(i+(c[t>>2]|0)<<2)>>2];c[s>>2]=(c[s>>2]|0)+1}c[t>>2]=(c[t>>2]|0)+1}l=j;return}function _d(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,m=0;e=l;l=l+32|0;f=e+20|0;g=e+16|0;h=e+12|0;i=e+8|0;j=e+4|0;k=e;c[g>>2]=a;c[h>>2]=b;c[i>>2]=d;c[k>>2]=$d(c[g>>2]|0,c[h>>2]|0)|0;h=c[k>>2]|0;if((c[k>>2]|0)<0){c[f>>2]=h;m=c[f>>2]|0;l=e;return m|0}c[j>>2]=R(h,Md(c[g>>2]|0,c[i>>2]|0)|0)|0;if(((c[j>>2]|0)*25|0)>((c[i>>2]|0)*3|0)){c[f>>2]=-4;m=c[f>>2]|0;l=e;return m|0}else{c[f>>2]=c[j>>2];m=c[f>>2]|0;l=e;return m|0}return 0}function $d(a,b){a=a|0;b=b|0;var e=0,f=0,g=0,h=0,i=0;e=l;l=l+16|0;f=e+12|0;g=e+8|0;h=e+4|0;i=e;c[g>>2]=a;c[h>>2]=b;do if((c[h>>2]|0)>=1){c[i>>2]=(d[c[g>>2]>>0]|0)&3;if(!(c[i>>2]|0)){c[f>>2]=1;break}if((c[i>>2]|0)!=3){c[f>>2]=2;break}if((c[h>>2]|0)<2){c[f>>2]=-4;break}else{c[f>>2]=(d[(c[g>>2]|0)+1>>0]|0)&63;break}}else c[f>>2]=-1;while(0);l=e;return c[f>>2]|0}function ae(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0;e=l;l=l+112|0;f=e+8|0;g=e+108|0;h=e+104|0;i=e+100|0;j=e+96|0;k=e+80|0;m=e+72|0;n=e+68|0;o=e+64|0;p=e+60|0;q=e+56|0;r=e+52|0;s=e+48|0;t=e+44|0;u=e+40|0;v=e+36|0;w=e+32|0;x=e+28|0;y=e+24|0;z=e+20|0;A=e+16|0;B=e+12|0;c[h>>2]=a;c[i>>2]=b;c[j>>2]=0;c[m>>2]=(c[h>>2]|0)+(c[(c[h>>2]|0)+4>>2]|0);c[n>>2]=(c[h>>2]|0)+(c[c[h>>2]>>2]|0);c[k>>2]=d;a:do switch(c[i>>2]|0){case 4009:{d=(c[k>>2]|0)+(4-1)&~(4-1);b=c[d>>2]|0;c[k>>2]=d+4;c[p>>2]=b;c[o>>2]=c[p>>2];if(c[o>>2]|0){c[c[o>>2]>>2]=c[(c[h>>2]|0)+48>>2];C=20}else C=21;break}case 4031:{b=(c[k>>2]|0)+(4-1)&~(4-1);d=c[b>>2]|0;c[k>>2]=b+4;c[r>>2]=d;c[q>>2]=c[r>>2];if(c[q>>2]|0){c[c[q>>2]>>2]=c[(c[h>>2]|0)+80>>2];C=20}else C=21;break}case 4028:{He((c[h>>2]|0)+44|0,0,84-((c[h>>2]|0)+44-(c[h>>2]|0))|0)|0;Xb(c[n>>2]|0,4028,e)|0;yd(c[m>>2]|0)|0;c[(c[h>>2]|0)+44>>2]=c[(c[h>>2]|0)+8>>2];c[(c[h>>2]|0)+60>>2]=(c[(c[h>>2]|0)+12>>2]|0)/400|0;C=20;break}case 4029:{d=(c[k>>2]|0)+(4-1)&~(4-1);b=c[d>>2]|0;c[k>>2]=d+4;c[t>>2]=b;c[s>>2]=c[t>>2];if(c[s>>2]|0){c[c[s>>2]>>2]=c[(c[h>>2]|0)+12>>2];C=20}else C=21;break}case 4033:{b=(c[k>>2]|0)+(4-1)&~(4-1);d=c[b>>2]|0;c[k>>2]=b+4;c[v>>2]=d;c[u>>2]=c[v>>2];if(c[u>>2]|0)if((c[(c[h>>2]|0)+56>>2]|0)==1002){d=c[n>>2]|0;c[f>>2]=(c[u>>2]|0)+((((c[u>>2]|0)-(c[u>>2]|0)|0)/4|0)<<2);Xb(d,4033,f)|0;C=20;break a}else{c[c[u>>2]>>2]=c[(c[h>>2]|0)+16+20>>2];C=20;break a}else C=21;break}case 4045:{d=(c[k>>2]|0)+(4-1)&~(4-1);b=c[d>>2]|0;c[k>>2]=d+4;c[x>>2]=b;c[w>>2]=c[x>>2];if(c[w>>2]|0){c[c[w>>2]>>2]=c[(c[h>>2]|0)+40>>2];C=20}else C=21;break}case 4034:{b=(c[k>>2]|0)+(4-1)&~(4-1);d=c[b>>2]|0;c[k>>2]=b+4;c[z>>2]=d;c[y>>2]=c[z>>2];if((c[y>>2]|0)<-32768|(c[y>>2]|0)>32767)C=21;else{c[(c[h>>2]|0)+40>>2]=c[y>>2];C=20}break}case 4039:{d=(c[k>>2]|0)+(4-1)&~(4-1);b=c[d>>2]|0;c[k>>2]=d+4;c[B>>2]=b;c[A>>2]=c[B>>2];if(c[A>>2]|0){c[c[A>>2]>>2]=c[(c[h>>2]|0)+68>>2];C=20}else C=21;break}default:{c[j>>2]=-5;C=20}}while(0);if((C|0)==20){c[g>>2]=c[j>>2];D=c[g>>2]|0;l=e;return D|0}else if((C|0)==21){c[g>>2]=-1;D=c[g>>2]|0;l=e;return D|0}return 0}function be(a){a=a|0;var b=0,e=0,f=0,g=0,h=0,i=0,j=0;b=l;l=l+16|0;e=b+12|0;f=b+8|0;g=b+4|0;h=b;c[f>>2]=a;c[h>>2]=(c[(c[f>>2]|0)+4>>2]|0)+(c[(c[f>>2]|0)+8>>2]|0);if((c[h>>2]|0)>255){c[e>>2]=0;i=c[e>>2]|0;l=b;return i|0}c[g>>2]=0;while(1){if((c[g>>2]|0)>=(c[c[f>>2]>>2]|0)){j=9;break}if((d[(c[f>>2]|0)+12+(c[g>>2]|0)>>0]|0|0)>=(c[h>>2]|0)?(d[(c[f>>2]|0)+12+(c[g>>2]|0)>>0]|0|0)!=255:0){j=7;break}c[g>>2]=(c[g>>2]|0)+1}if((j|0)==7){c[e>>2]=0;i=c[e>>2]|0;l=b;return i|0}else if((j|0)==9){c[e>>2]=1;i=c[e>>2]|0;l=b;return i|0}return 0}function ce(a,b,e){a=a|0;b=b|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0;f=l;l=l+32|0;g=f+16|0;h=f+12|0;i=f+8|0;j=f+4|0;k=f;c[h>>2]=a;c[i>>2]=b;c[j>>2]=e;c[k>>2]=(c[j>>2]|0)<0?0:(c[j>>2]|0)+1|0;while(1){if((c[k>>2]|0)>=(c[c[h>>2]>>2]|0)){m=6;break}n=c[k>>2]|0;if((d[(c[h>>2]|0)+12+(c[k>>2]|0)>>0]|0|0)==(c[i>>2]<<1|0)){m=4;break}c[k>>2]=n+1}if((m|0)==4){c[g>>2]=n;o=c[g>>2]|0;l=f;return o|0}else if((m|0)==6){c[g>>2]=-1;o=c[g>>2]|0;l=f;return o|0}return 0}function de(a,b,e){a=a|0;b=b|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0;f=l;l=l+32|0;g=f+16|0;h=f+12|0;i=f+8|0;j=f+4|0;k=f;c[h>>2]=a;c[i>>2]=b;c[j>>2]=e;c[k>>2]=(c[j>>2]|0)<0?0:(c[j>>2]|0)+1|0;while(1){if((c[k>>2]|0)>=(c[c[h>>2]>>2]|0)){m=6;break}n=c[k>>2]|0;if((d[(c[h>>2]|0)+12+(c[k>>2]|0)>>0]|0|0)==((c[i>>2]<<1)+1|0)){m=4;break}c[k>>2]=n+1}if((m|0)==4){c[g>>2]=n;o=c[g>>2]|0;l=f;return o|0}else if((m|0)==6){c[g>>2]=-1;o=c[g>>2]|0;l=f;return o|0}return 0}function ee(a,b,e){a=a|0;b=b|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0;f=l;l=l+32|0;g=f+16|0;h=f+12|0;i=f+8|0;j=f+4|0;k=f;c[h>>2]=a;c[i>>2]=b;c[j>>2]=e;c[k>>2]=(c[j>>2]|0)<0?0:(c[j>>2]|0)+1|0;while(1){if((c[k>>2]|0)>=(c[c[h>>2]>>2]|0)){m=6;break}n=c[k>>2]|0;if((d[(c[h>>2]|0)+12+(c[k>>2]|0)>>0]|0|0)==((c[i>>2]|0)+(c[(c[h>>2]|0)+8>>2]|0)|0)){m=4;break}c[k>>2]=n+1}if((m|0)==4){c[g>>2]=n;o=c[g>>2]|0;l=f;return o|0}else if((m|0)==6){c[g>>2]=-1;o=c[g>>2]|0;l=f;return o|0}return 0}function fe(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;d=l;l=l+32|0;e=d+16|0;f=d+12|0;g=d+8|0;h=d+4|0;i=d;c[f>>2]=a;c[g>>2]=b;if((c[f>>2]|0)>=1?!((c[g>>2]|0)<0?1:(c[g>>2]|0)>(c[f>>2]|0)):0){c[h>>2]=Pd(2)|0;c[i>>2]=Pd(1)|0;b=ge(268)|0;a=c[g>>2]|0;j=b+(R(a,ge(c[h>>2]|0)|0)|0)|0;h=(c[f>>2]|0)-(c[g>>2]|0)|0;c[e>>2]=j+(R(h,ge(c[i>>2]|0)|0)|0);k=c[e>>2]|0;l=d;return k|0}c[e>>2]=0;k=c[e>>2]|0;l=d;return k|0}function ge(a){a=a|0;var b=0,d=0;b=l;l=l+16|0;d=b;c[d>>2]=a;l=b;return (c[d>>2]|0)+4-1&-4|0}function he(b,d,e,f,g,h){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0;i=l;l=l+48|0;j=i+44|0;k=i+40|0;m=i+36|0;n=i+32|0;o=i+28|0;p=i+24|0;q=i+20|0;r=i+16|0;s=i+12|0;t=i+8|0;u=i+4|0;v=i;c[k>>2]=b;c[m>>2]=d;c[n>>2]=e;c[o>>2]=f;c[p>>2]=g;c[q>>2]=h;if((!((c[n>>2]|0)>255|(c[n>>2]|0)<1)?(c[p>>2]|0)<=(c[o>>2]|0):0)?!(((c[o>>2]|0)<1?1:((c[p>>2]|0)+(c[o>>2]|0)|0)>255)|(c[p>>2]|0)<0):0){c[c[k>>2]>>2]=c[n>>2];c[(c[k>>2]|0)+4>>2]=c[o>>2];c[(c[k>>2]|0)+8>>2]=c[p>>2];c[t>>2]=0;while(1){if((c[t>>2]|0)>=(c[c[k>>2]>>2]|0))break;a[(c[k>>2]|0)+12+(c[t>>2]|0)>>0]=a[(c[q>>2]|0)+(c[t>>2]|0)>>0]|0;c[t>>2]=(c[t>>2]|0)+1}if(!(be(c[k>>2]|0)|0)){c[j>>2]=-1;w=c[j>>2]|0;l=i;return w|0}q=c[k>>2]|0;c[v>>2]=q+(ge(268)|0);c[r>>2]=Pd(2)|0;c[s>>2]=Pd(1)|0;c[t>>2]=0;while(1){if((c[t>>2]|0)>=(c[(c[k>>2]|0)+8>>2]|0))break;c[u>>2]=Rd(c[v>>2]|0,c[m>>2]|0,2)|0;if(c[u>>2]|0){x=13;break}q=ge(c[r>>2]|0)|0;c[v>>2]=(c[v>>2]|0)+q;c[t>>2]=(c[t>>2]|0)+1}if((x|0)==13){c[j>>2]=c[u>>2];w=c[j>>2]|0;l=i;return w|0}while(1){if((c[t>>2]|0)>=(c[(c[k>>2]|0)+4>>2]|0)){x=19;break}c[u>>2]=Rd(c[v>>2]|0,c[m>>2]|0,1)|0;if(c[u>>2]|0){x=17;break}r=ge(c[s>>2]|0)|0;c[v>>2]=(c[v>>2]|0)+r;c[t>>2]=(c[t>>2]|0)+1}if((x|0)==17){c[j>>2]=c[u>>2];w=c[j>>2]|0;l=i;return w|0}else if((x|0)==19){c[j>>2]=0;w=c[j>>2]|0;l=i;return w|0}}c[j>>2]=-1;w=c[j>>2]|0;l=i;return w|0}function ie(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;h=l;l=l+48|0;i=h+32|0;j=h+28|0;k=h+24|0;m=h+20|0;n=h+16|0;o=h+12|0;p=h+8|0;q=h+4|0;r=h;c[j>>2]=a;c[k>>2]=b;c[m>>2]=d;c[n>>2]=e;c[o>>2]=f;c[p>>2]=g;if((!((c[k>>2]|0)>255|(c[k>>2]|0)<1)?(c[n>>2]|0)<=(c[m>>2]|0):0)?!(((c[m>>2]|0)<1?1:((c[n>>2]|0)+(c[m>>2]|0)|0)>255)|(c[n>>2]|0)<0):0){c[r>>2]=je(fe(c[m>>2]|0,c[n>>2]|0)|0)|0;if(!(c[r>>2]|0)){if(c[p>>2]|0)c[c[p>>2]>>2]=-7;c[i>>2]=0;s=c[i>>2]|0;l=h;return s|0}c[q>>2]=he(c[r>>2]|0,c[j>>2]|0,c[k>>2]|0,c[m>>2]|0,c[n>>2]|0,c[o>>2]|0)|0;if(c[p>>2]|0)c[c[p>>2]>>2]=c[q>>2];if(c[q>>2]|0){ke(c[r>>2]|0);c[r>>2]=0}c[i>>2]=c[r>>2];s=c[i>>2]|0;l=h;return s|0}if(c[p>>2]|0)c[c[p>>2]>>2]=-1;c[i>>2]=0;s=c[i>>2]|0;l=h;return s|0}function je(a){a=a|0;var b=0,d=0;b=l;l=l+16|0;d=b;c[d>>2]=a;a=Ce(c[d>>2]|0)|0;l=b;return a|0}function ke(a){a=a|0;var b=0,d=0;b=l;l=l+16|0;d=b;c[d>>2]=a;De(c[d>>2]|0);l=b;return}function le(a,b,e,f,g,h,i,j){a=a|0;b=b|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;var k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0;k=l;l=l+112|0;m=k;n=k+104|0;o=k+100|0;p=k+96|0;q=k+92|0;r=k+88|0;s=k+84|0;t=k+80|0;u=k+76|0;v=k+72|0;w=k+68|0;x=k+64|0;y=k+60|0;z=k+56|0;A=k+52|0;B=k+48|0;C=k+44|0;D=k+40|0;E=k+36|0;F=k+32|0;G=k+28|0;H=k+24|0;I=k+20|0;J=k+16|0;K=k+12|0;L=k+8|0;M=k+4|0;c[o>>2]=a;c[p>>2]=b;c[q>>2]=e;c[r>>2]=f;c[s>>2]=g;c[t>>2]=h;c[u>>2]=i;c[v>>2]=j;c[C>>2]=0;j=c[o>>2]|0;c[m>>2]=w+(((w-w|0)/4|0)<<2);me(j,4029,m)|0;if((c[t>>2]|0)<(((c[w>>2]|0)/25|0)*3|0))N=c[t>>2]|0;else N=((c[w>>2]|0)/25|0)*3|0;c[t>>2]=N;N=c[t>>2]<<1;c[D>>2]=da()|0;m=l;l=l+((1*(N<<2)|0)+15&-16)|0;N=c[o>>2]|0;c[B>>2]=N+(ge(268)|0);c[x>>2]=Pd(2)|0;c[y>>2]=Pd(1)|0;if(!(c[q>>2]|0))c[C>>2]=1;if((c[q>>2]|0)<0){c[n>>2]=-1;c[E>>2]=1;O=c[D>>2]|0;ga(O|0);P=c[n>>2]|0;l=k;return P|0}if((c[C>>2]|0)==0?(c[q>>2]|0)<((c[(c[o>>2]|0)+4>>2]<<1)-1|0):0){c[n>>2]=-4;c[E>>2]=1;O=c[D>>2]|0;ga(O|0);P=c[n>>2]|0;l=k;return P|0}if(!(c[C>>2]|0)){c[F>>2]=ne(c[p>>2]|0,c[q>>2]|0,c[(c[o>>2]|0)+4>>2]|0,c[w>>2]|0)|0;w=c[F>>2]|0;if((c[F>>2]|0)<0){c[n>>2]=w;c[E>>2]=1;O=c[D>>2]|0;ga(O|0);P=c[n>>2]|0;l=k;return P|0}if((w|0)>(c[t>>2]|0)){c[n>>2]=-2;c[E>>2]=1;O=c[D>>2]|0;ga(O|0);P=c[n>>2]|0;l=k;return P|0}}c[z>>2]=0;while(1){if((c[z>>2]|0)>=(c[(c[o>>2]|0)+4>>2]|0)){Q=33;break}c[G>>2]=c[B>>2];w=ge((c[z>>2]|0)<(c[(c[o>>2]|0)+8>>2]|0)?c[x>>2]|0:c[y>>2]|0)|0;c[B>>2]=(c[B>>2]|0)+w;if((c[C>>2]|0)==0&(c[q>>2]|0)<=0){Q=19;break}c[H>>2]=0;c[I>>2]=Sd(c[G>>2]|0,c[p>>2]|0,c[q>>2]|0,m,c[t>>2]|0,c[u>>2]|0,(c[z>>2]|0)!=((c[(c[o>>2]|0)+4>>2]|0)-1|0)&1,H,c[v>>2]|0)|0;c[p>>2]=(c[p>>2]|0)+(c[H>>2]|0);c[q>>2]=(c[q>>2]|0)-(c[H>>2]|0);R=c[I>>2]|0;if((c[I>>2]|0)<=0){Q=21;break}c[t>>2]=R;a:do if((c[z>>2]|0)<(c[(c[o>>2]|0)+8>>2]|0)){c[K>>2]=-1;while(1){w=ce(c[o>>2]|0,c[z>>2]|0,c[K>>2]|0)|0;c[J>>2]=w;if((w|0)==-1)break;ia[c[s>>2]&1](c[r>>2]|0,c[c[o>>2]>>2]|0,c[J>>2]|0,m,2,c[t>>2]|0);c[K>>2]=c[J>>2]}c[K>>2]=-1;while(1){w=de(c[o>>2]|0,c[z>>2]|0,c[K>>2]|0)|0;c[J>>2]=w;if((w|0)==-1)break a;ia[c[s>>2]&1](c[r>>2]|0,c[c[o>>2]>>2]|0,c[J>>2]|0,m+4|0,2,c[t>>2]|0);c[K>>2]=c[J>>2]}}else{c[M>>2]=-1;while(1){w=ee(c[o>>2]|0,c[z>>2]|0,c[M>>2]|0)|0;c[L>>2]=w;if((w|0)==-1)break a;ia[c[s>>2]&1](c[r>>2]|0,c[c[o>>2]>>2]|0,c[L>>2]|0,m,1,c[t>>2]|0);c[M>>2]=c[L>>2]}}while(0);c[z>>2]=(c[z>>2]|0)+1}if((Q|0)==19){c[n>>2]=-3;c[E>>2]=1;O=c[D>>2]|0;ga(O|0);P=c[n>>2]|0;l=k;return P|0}else if((Q|0)==21){c[n>>2]=R;c[E>>2]=1;O=c[D>>2]|0;ga(O|0);P=c[n>>2]|0;l=k;return P|0}else if((Q|0)==33){c[A>>2]=0;while(1){if((c[A>>2]|0)>=(c[c[o>>2]>>2]|0))break;if((d[(c[o>>2]|0)+12+(c[A>>2]|0)>>0]|0|0)==255)ia[c[s>>2]&1](c[r>>2]|0,c[c[o>>2]>>2]|0,c[A>>2]|0,0,0,c[t>>2]|0);c[A>>2]=(c[A>>2]|0)+1}c[n>>2]=c[t>>2];c[E>>2]=1;O=c[D>>2]|0;ga(O|0);P=c[n>>2]|0;l=k;return P|0}return 0}function me(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0;e=l;l=l+160|0;f=e+24|0;g=e+16|0;h=e+8|0;i=e;j=e+144|0;k=e+140|0;m=e+136|0;n=e+120|0;o=e+116|0;p=e+112|0;q=e+108|0;r=e+104|0;s=e+100|0;t=e+96|0;u=e+92|0;v=e+88|0;w=e+84|0;x=e+80|0;y=e+76|0;z=e+72|0;A=e+68|0;B=e+64|0;C=e+60|0;D=e+56|0;E=e+52|0;F=e+48|0;G=e+44|0;H=e+40|0;I=e+36|0;J=e+32|0;K=e+28|0;c[k>>2]=a;c[m>>2]=b;c[r>>2]=0;c[n>>2]=d;c[o>>2]=Pd(2)|0;c[p>>2]=Pd(1)|0;d=c[k>>2]|0;c[q>>2]=d+(ge(268)|0);a:do switch(c[m>>2]|0){case 4039:case 4045:case 4029:case 4009:{d=(c[n>>2]|0)+(4-1)&~(4-1);b=c[d>>2]|0;c[n>>2]=d+4;c[u>>2]=b;c[t>>2]=c[u>>2];c[s>>2]=c[q>>2];b=c[s>>2]|0;d=c[m>>2]|0;c[i>>2]=c[t>>2];c[r>>2]=ae(b,d,i)|0;L=37;break}case 4031:{d=(c[n>>2]|0)+(4-1)&~(4-1);b=c[d>>2]|0;c[n>>2]=d+4;c[x>>2]=b;c[w>>2]=c[x>>2];if(c[w>>2]|0){c[c[w>>2]>>2]=0;c[v>>2]=0;while(1){if((c[v>>2]|0)>=(c[(c[k>>2]|0)+4>>2]|0)){L=37;break a}c[z>>2]=c[q>>2];if((c[v>>2]|0)<(c[(c[k>>2]|0)+8>>2]|0)){b=ge(c[o>>2]|0)|0;c[q>>2]=(c[q>>2]|0)+b}else{b=ge(c[p>>2]|0)|0;c[q>>2]=(c[q>>2]|0)+b}b=c[z>>2]|0;d=c[m>>2]|0;c[h>>2]=y;c[r>>2]=ae(b,d,h)|0;if(c[r>>2]|0){L=37;break a}d=c[w>>2]|0;c[d>>2]=c[d>>2]^c[y>>2];c[v>>2]=(c[v>>2]|0)+1}}else L=38;break}case 4028:{c[A>>2]=0;while(1){if((c[A>>2]|0)>=(c[(c[k>>2]|0)+4>>2]|0)){L=37;break a}c[B>>2]=c[q>>2];if((c[A>>2]|0)<(c[(c[k>>2]|0)+8>>2]|0)){d=ge(c[o>>2]|0)|0;c[q>>2]=(c[q>>2]|0)+d}else{d=ge(c[p>>2]|0)|0;c[q>>2]=(c[q>>2]|0)+d}c[r>>2]=ae(c[B>>2]|0,4028,g)|0;if(c[r>>2]|0){L=37;break a}c[A>>2]=(c[A>>2]|0)+1}break}case 5122:{d=(c[n>>2]|0)+(4-1)&~(4-1);b=c[d>>2]|0;c[n>>2]=d+4;c[F>>2]=b;c[D>>2]=c[F>>2];if(!((c[D>>2]|0)>=0?(c[D>>2]|0)<(c[(c[k>>2]|0)+4>>2]|0):0))c[r>>2]=-1;b=(c[n>>2]|0)+(4-1)&~(4-1);d=c[b>>2]|0;c[n>>2]=b+4;c[G>>2]=d;c[E>>2]=c[G>>2];if(c[E>>2]|0){c[C>>2]=0;while(1){if((c[C>>2]|0)>=(c[D>>2]|0))break;if((c[C>>2]|0)<(c[(c[k>>2]|0)+8>>2]|0)){d=ge(c[o>>2]|0)|0;c[q>>2]=(c[q>>2]|0)+d}else{d=ge(c[p>>2]|0)|0;c[q>>2]=(c[q>>2]|0)+d}c[C>>2]=(c[C>>2]|0)+1}c[c[E>>2]>>2]=c[q>>2];L=37}else L=38;break}case 4034:{d=(c[n>>2]|0)+(4-1)&~(4-1);b=c[d>>2]|0;c[n>>2]=d+4;c[J>>2]=b;c[I>>2]=c[J>>2];c[H>>2]=0;while(1){if((c[H>>2]|0)>=(c[(c[k>>2]|0)+4>>2]|0)){L=37;break a}c[K>>2]=c[q>>2];if((c[H>>2]|0)<(c[(c[k>>2]|0)+8>>2]|0)){b=ge(c[o>>2]|0)|0;c[q>>2]=(c[q>>2]|0)+b}else{b=ge(c[p>>2]|0)|0;c[q>>2]=(c[q>>2]|0)+b}b=c[K>>2]|0;d=c[m>>2]|0;c[f>>2]=c[I>>2];c[r>>2]=ae(b,d,f)|0;if(c[r>>2]|0){L=37;break a}c[H>>2]=(c[H>>2]|0)+1}break}default:{c[r>>2]=-5;L=37}}while(0);if((L|0)==37){c[j>>2]=c[r>>2];M=c[j>>2]|0;l=e;return M|0}else if((L|0)==38){c[j>>2]=-1;M=c[j>>2]|0;l=e;return M|0}return 0}function ne(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0;f=l;l=l+144|0;g=f+36|0;h=f+32|0;i=f+28|0;j=f+24|0;k=f+20|0;m=f+16|0;n=f+12|0;o=f+136|0;p=f+40|0;q=f+8|0;r=f+4|0;s=f;c[h>>2]=a;c[i>>2]=b;c[j>>2]=d;c[k>>2]=e;c[q>>2]=0;c[m>>2]=0;while(1){if((c[m>>2]|0)>=(c[j>>2]|0)){t=11;break}if((c[i>>2]|0)<=0){t=4;break}c[n>>2]=Nd(c[h>>2]|0,c[i>>2]|0,(c[m>>2]|0)!=((c[j>>2]|0)-1|0)&1,o,0,p,0,r)|0;if((c[n>>2]|0)<0){t=6;break}c[s>>2]=_d(c[h>>2]|0,c[r>>2]|0,c[k>>2]|0)|0;if(c[m>>2]|0?(c[q>>2]|0)!=(c[s>>2]|0):0){t=9;break}c[q>>2]=c[s>>2];c[h>>2]=(c[h>>2]|0)+(c[r>>2]|0);c[i>>2]=(c[i>>2]|0)-(c[r>>2]|0);c[m>>2]=(c[m>>2]|0)+1}if((t|0)==4){c[g>>2]=-4;u=c[g>>2]|0;l=f;return u|0}else if((t|0)==6){c[g>>2]=c[n>>2];u=c[g>>2]|0;l=f;return u|0}else if((t|0)==9){c[g>>2]=-4;u=c[g>>2]|0;l=f;return u|0}else if((t|0)==11){c[g>>2]=c[q>>2];u=c[g>>2]|0;l=f;return u|0}return 0}function oe(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,m=0,n=0,o=0;h=l;l=l+32|0;i=h+20|0;j=h+16|0;k=h+12|0;m=h+8|0;n=h+4|0;o=h;c[i>>2]=a;c[j>>2]=b;c[k>>2]=d;c[m>>2]=e;c[n>>2]=f;c[o>>2]=g;g=le(c[i>>2]|0,c[j>>2]|0,c[k>>2]|0,c[m>>2]|0,1,c[n>>2]|0,c[o>>2]|0,0)|0;l=h;return g|0}function pe(a,b,d,e,f,h){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;h=h|0;var i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0.0;i=l;l=l+32|0;j=i+28|0;k=i+24|0;m=i+20|0;n=i+16|0;o=i+12|0;p=i+8|0;q=i+4|0;r=i;c[j>>2]=a;c[k>>2]=b;c[m>>2]=d;c[n>>2]=e;c[o>>2]=f;c[p>>2]=h;c[q>>2]=c[j>>2];j=(c[n>>2]|0)!=0;c[r>>2]=0;if(j){while(1){if((c[r>>2]|0)>=(c[p>>2]|0))break;s=+g[(c[n>>2]|0)+((R(c[r>>2]|0,c[o>>2]|0)|0)<<2)>>2];j=R(c[r>>2]|0,c[k>>2]|0)|0;g[(c[q>>2]|0)+(j+(c[m>>2]|0)<<2)>>2]=s;c[r>>2]=(c[r>>2]|0)+1}l=i;return}else{while(1){if((c[r>>2]|0)>=(c[p>>2]|0))break;o=R(c[r>>2]|0,c[k>>2]|0)|0;g[(c[q>>2]|0)+(o+(c[m>>2]|0)<<2)>>2]=0.0;c[r>>2]=(c[r>>2]|0)+1}l=i;return}}function qe(){return}function re(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,h=0,i=0.0;d=l;l=l+48|0;e=d+32|0;f=d;ue(f,a,b);switch(c[6305]|0){case 0:{b=we(f,25228,25232,25236,25240,25244)|0;c[6306]=b;if(!b){h=0;l=d;return h|0}c[6305]=1;i=+g[6310];if(i!=0.0){c[e>>2]=~~i;me(b,4034,e)|0}c[6305]=1;h=1;l=d;return h|0}case 1:{c[6305]=2;h=1;l=d;return h|0}default:{$(c[6308]|0,48e3);h=1;l=d;return h|0}}return 0}function se(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;d=Ce((c[6308]|0)*23040|0)|0;e=oe(c[6306]|0,a,b,d,5760,0)|0;if((e|0)<0){f=0;De(d);return f|0}b=c[6309]|0;if((e|0)>(b|0)){a=e-b|0;g=c[6308]|0;h=Ce(R(a<<2,g)|0)|0;i=Ce(g<<2)|0;if((g|0)>0){j=0;do{k=h+((R(j,a)|0)<<2)|0;c[i+(j<<2)>>2]=k;l=b;do{c[k+(l-b<<2)>>2]=c[d+((R(l,g)|0)+j<<2)>>2];l=l+1|0}while((l|0)!=(e|0));j=j+1|0}while((j|0)<(g|0))}ea(i|0,g|0,a|0);De(i);De(h);m=c[6309]|0;n=b}else{m=b;n=e}c[6309]=m-n;f=1;De(d);return f|0}function te(){return}function ue(a,b,d){a=a|0;b=b|0;d=d|0;c[a>>2]=b;c[a+4>>2]=d;d=a+8|0;c[d>>2]=0;c[d+4>>2]=0;c[d+8>>2]=0;c[d+12>>2]=0;c[d+16>>2]=0;c[d+20>>2]=0;return}function ve(b,e,f){b=b|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0;g=l;l=l+16|0;h=g;a[h+8>>0]=0;if((e|0)<19){i=0;l=g;return i|0}j=b;k=j;m=j+4|0;j=d[m>>0]|d[m+1>>0]<<8|d[m+2>>0]<<16|d[m+3>>0]<<24;m=h;c[m>>2]=d[k>>0]|d[k+1>>0]<<8|d[k+2>>0]<<16|d[k+3>>0]<<24;c[m+4>>2]=j;if(Be(h,25210,8)|0){i=0;l=g;return i|0}h=e+-1|0;j=d[b+8>>0]|0;c[f>>2]=j;if(j&240|0){i=0;l=g;return i|0}m=a[b+9>>0]|0;k=f+4|0;c[k>>2]=m&255;if(!(m<<24>>24!=0&(e+-2|0)>9)){i=0;l=g;return i|0}c[f+8>>2]=(d[b+11>>0]|0)<<8|(d[b+10>>0]|0);n=f+12|0;if((e+-4|0)<12){i=0;l=g;return i|0}o=d[b+12>>0]|0;c[n>>2]=o;p=(d[b+13>>0]|0)<<8|o;c[n>>2]=p;o=(d[b+14>>0]|0)<<16|p;c[n>>2]=o;c[n>>2]=(d[b+15>>0]|0)<<24|o;c[f+16>>2]=((d[b+17>>0]|0)<<8|(d[b+16>>0]|0))<<16>>16;o=a[b+18>>0]|0;c[f+20>>2]=o&255;do if(!(o<<24>>24))if((m&255)>2){i=0;l=g;return i|0}else{c[f+24>>2]=1;c[f+28>>2]=m<<24>>24==2&1;a[f+32>>0]=0;a[f+33>>0]=1;q=j;r=19;break}else{if((h|0)<=18){i=0;l=g;return i|0}n=a[b+19>>0]|0;if(!(n<<24>>24)){i=0;l=g;return i|0}p=n&255;s=f+24|0;c[s>>2]=p;if((h|0)<=19){i=0;l=g;return i|0}t=a[b+20>>0]|0;u=t&255;if((t&255)>(n&255)|(u+p|0)>>>0>255){i=0;l=g;return i|0}p=f+28|0;c[p>>2]=u;u=0;n=21;while(1){if((n|0)>=(e|0)){i=0;v=19;break}t=a[b+n>>0]|0;a[f+32+u>>0]=t;n=n+1|0;u=u+1|0;if(!(t<<24>>24==-1?1:(t&255|0)<=((c[p>>2]|0)+(c[s>>2]|0)|0))){i=0;v=19;break}if((u|0)>=(c[k>>2]|0)){v=17;break}}if((v|0)==17){q=c[f>>2]|0;r=n;break}else if((v|0)==19){l=g;return i|0}}while(0);i=((r|0)==(e|0)|q>>>0>1)&1;l=g;return i|0}function we(a,b,d,e,f,h){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;h=h|0;var i=0,j=0,k=0,m=0,n=0;i=l;l=l+304|0;j=i;k=i+296|0;m=i+8|0;if(!(ve(c[a>>2]|0,c[a+4>>2]|0,m)|0)){n=0;l=i;return n|0}c[b>>2]=c[m+20>>2];b=c[m+4>>2]|0;c[d>>2]=b;c[e>>2]=c[m+8>>2];e=m+24|0;d=ie(48e3,b,c[e>>2]|0,c[m+28>>2]|0,m+32|0,k)|0;if((d|0)==0|(c[k>>2]|0)!=0){n=0;l=i;return n|0}c[h>>2]=c[e>>2];e=m+16|0;m=c[e>>2]|0;a:do if(m|0){c[j>>2]=m;h=me(d,4034,j)|0;c[k>>2]=h;switch(h|0){case 0:{break a;break}case -5:{g[f>>2]=+G(10.0,+(+(c[e>>2]|0)/5120.0));break a;break}default:{n=0;l=i;return n|0}}}while(0);n=d;l=i;return n|0}function xe(){return 25248}function ye(){return (ze()|0)+64|0}function ze(){return Ae()|0}function Ae(){return 17444}function Be(b,c,d){b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0;a:do if(!d)e=0;else{f=b;g=d;h=c;while(1){i=a[f>>0]|0;j=a[h>>0]|0;if(i<<24>>24!=j<<24>>24)break;g=g+-1|0;if(!g){e=0;break a}else{f=f+1|0;h=h+1|0}}e=(i&255)-(j&255)|0}while(0);return e|0}
function Ce(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,$=0,aa=0,ca=0,da=0,ea=0,fa=0,ga=0,ha=0,ia=0,ja=0,ka=0,la=0,ma=0,na=0,oa=0,pa=0,qa=0,ra=0,sa=0,ta=0,ua=0,va=0,wa=0,xa=0,ya=0,za=0,Aa=0,Ba=0;b=l;l=l+16|0;d=b;do if(a>>>0<245){e=a>>>0<11?16:a+11&-8;f=e>>>3;g=c[6328]|0;h=g>>>f;if(h&3|0){i=(h&1^1)+f|0;j=25352+(i<<1<<2)|0;k=j+8|0;m=c[k>>2]|0;n=m+8|0;o=c[n>>2]|0;do if((j|0)!=(o|0)){if(o>>>0<(c[6332]|0)>>>0)ba();p=o+12|0;if((c[p>>2]|0)==(m|0)){c[p>>2]=j;c[k>>2]=o;break}else ba()}else c[6328]=g&~(1<<i);while(0);o=i<<3;c[m+4>>2]=o|3;k=m+o+4|0;c[k>>2]=c[k>>2]|1;q=n;l=b;return q|0}k=c[6330]|0;if(e>>>0>k>>>0){if(h|0){o=2<<f;j=h<<f&(o|0-o);o=(j&0-j)+-1|0;j=o>>>12&16;p=o>>>j;o=p>>>5&8;r=p>>>o;p=r>>>2&4;s=r>>>p;r=s>>>1&2;t=s>>>r;s=t>>>1&1;u=(o|j|p|r|s)+(t>>>s)|0;s=25352+(u<<1<<2)|0;t=s+8|0;r=c[t>>2]|0;p=r+8|0;j=c[p>>2]|0;do if((s|0)!=(j|0)){if(j>>>0<(c[6332]|0)>>>0)ba();o=j+12|0;if((c[o>>2]|0)==(r|0)){c[o>>2]=s;c[t>>2]=j;v=g;break}else ba()}else{o=g&~(1<<u);c[6328]=o;v=o}while(0);j=(u<<3)-e|0;c[r+4>>2]=e|3;t=r+e|0;c[t+4>>2]=j|1;c[t+j>>2]=j;if(k|0){s=c[6333]|0;f=k>>>3;h=25352+(f<<1<<2)|0;n=1<<f;if(v&n){f=h+8|0;m=c[f>>2]|0;if(m>>>0<(c[6332]|0)>>>0)ba();else{w=f;x=m}}else{c[6328]=v|n;w=h+8|0;x=h}c[w>>2]=s;c[x+12>>2]=s;c[s+8>>2]=x;c[s+12>>2]=h}c[6330]=j;c[6333]=t;q=p;l=b;return q|0}t=c[6329]|0;if(t){j=(t&0-t)+-1|0;h=j>>>12&16;s=j>>>h;j=s>>>5&8;n=s>>>j;s=n>>>2&4;m=n>>>s;n=m>>>1&2;f=m>>>n;m=f>>>1&1;i=c[25616+((j|h|s|n|m)+(f>>>m)<<2)>>2]|0;m=(c[i+4>>2]&-8)-e|0;f=c[i+16+(((c[i+16>>2]|0)==0&1)<<2)>>2]|0;if(!f){y=m;z=i}else{n=f;f=m;m=i;while(1){i=(c[n+4>>2]&-8)-e|0;s=i>>>0<f>>>0;h=s?i:f;i=s?n:m;n=c[n+16+(((c[n+16>>2]|0)==0&1)<<2)>>2]|0;if(!n){y=h;z=i;break}else{f=h;m=i}}}m=c[6332]|0;if(z>>>0<m>>>0)ba();f=z+e|0;if(z>>>0>=f>>>0)ba();n=c[z+24>>2]|0;p=c[z+12>>2]|0;do if((p|0)==(z|0)){r=z+20|0;u=c[r>>2]|0;if(!u){i=z+16|0;h=c[i>>2]|0;if(!h){A=0;break}else{B=h;C=i}}else{B=u;C=r}while(1){r=B+20|0;u=c[r>>2]|0;if(u|0){B=u;C=r;continue}r=B+16|0;u=c[r>>2]|0;if(!u)break;else{B=u;C=r}}if(C>>>0<m>>>0)ba();else{c[C>>2]=0;A=B;break}}else{r=c[z+8>>2]|0;if(r>>>0<m>>>0)ba();u=r+12|0;if((c[u>>2]|0)!=(z|0))ba();i=p+8|0;if((c[i>>2]|0)==(z|0)){c[u>>2]=p;c[i>>2]=r;A=p;break}else ba()}while(0);a:do if(n|0){p=c[z+28>>2]|0;m=25616+(p<<2)|0;do if((z|0)==(c[m>>2]|0)){c[m>>2]=A;if(!A){c[6329]=t&~(1<<p);break a}}else if(n>>>0>=(c[6332]|0)>>>0){c[n+16+(((c[n+16>>2]|0)!=(z|0)&1)<<2)>>2]=A;if(!A)break a;else break}else ba();while(0);p=c[6332]|0;if(A>>>0<p>>>0)ba();c[A+24>>2]=n;m=c[z+16>>2]|0;do if(m|0)if(m>>>0<p>>>0)ba();else{c[A+16>>2]=m;c[m+24>>2]=A;break}while(0);m=c[z+20>>2]|0;if(m|0)if(m>>>0<(c[6332]|0)>>>0)ba();else{c[A+20>>2]=m;c[m+24>>2]=A;break}}while(0);if(y>>>0<16){n=y+e|0;c[z+4>>2]=n|3;t=z+n+4|0;c[t>>2]=c[t>>2]|1}else{c[z+4>>2]=e|3;c[f+4>>2]=y|1;c[f+y>>2]=y;if(k|0){t=c[6333]|0;n=k>>>3;m=25352+(n<<1<<2)|0;p=1<<n;if(g&p){n=m+8|0;r=c[n>>2]|0;if(r>>>0<(c[6332]|0)>>>0)ba();else{D=n;E=r}}else{c[6328]=g|p;D=m+8|0;E=m}c[D>>2]=t;c[E+12>>2]=t;c[t+8>>2]=E;c[t+12>>2]=m}c[6330]=y;c[6333]=f}q=z+8|0;l=b;return q|0}else F=e}else F=e}else if(a>>>0<=4294967231){m=a+11|0;t=m&-8;p=c[6329]|0;if(p){r=0-t|0;n=m>>>8;if(n)if(t>>>0>16777215)G=31;else{m=(n+1048320|0)>>>16&8;i=n<<m;n=(i+520192|0)>>>16&4;u=i<<n;i=(u+245760|0)>>>16&2;h=14-(n|m|i)+(u<<i>>>15)|0;G=t>>>(h+7|0)&1|h<<1}else G=0;h=c[25616+(G<<2)>>2]|0;b:do if(!h){H=r;I=0;J=0;K=81}else{i=r;u=0;m=t<<((G|0)==31?0:25-(G>>>1)|0);n=h;s=0;while(1){j=(c[n+4>>2]&-8)-t|0;if(j>>>0<i>>>0)if(!j){L=0;M=n;N=n;K=85;break b}else{O=j;P=n}else{O=i;P=s}j=c[n+20>>2]|0;n=c[n+16+(m>>>31<<2)>>2]|0;o=(j|0)==0|(j|0)==(n|0)?u:j;j=(n|0)==0;if(j){H=O;I=o;J=P;K=81;break}else{i=O;u=o;m=m<<((j^1)&1);s=P}}}while(0);if((K|0)==81){if((I|0)==0&(J|0)==0){h=2<<G;r=p&(h|0-h);if(!r){F=t;break}h=(r&0-r)+-1|0;r=h>>>12&16;e=h>>>r;h=e>>>5&8;f=e>>>h;e=f>>>2&4;g=f>>>e;f=g>>>1&2;k=g>>>f;g=k>>>1&1;Q=c[25616+((h|r|e|f|g)+(k>>>g)<<2)>>2]|0;R=0}else{Q=I;R=J}if(!Q){S=H;T=R}else{L=H;M=Q;N=R;K=85}}if((K|0)==85)while(1){K=0;g=(c[M+4>>2]&-8)-t|0;k=g>>>0<L>>>0;f=k?g:L;g=k?M:N;M=c[M+16+(((c[M+16>>2]|0)==0&1)<<2)>>2]|0;if(!M){S=f;T=g;break}else{L=f;N=g;K=85}}if((T|0)!=0?S>>>0<((c[6330]|0)-t|0)>>>0:0){g=c[6332]|0;if(T>>>0<g>>>0)ba();f=T+t|0;if(T>>>0>=f>>>0)ba();k=c[T+24>>2]|0;e=c[T+12>>2]|0;do if((e|0)==(T|0)){r=T+20|0;h=c[r>>2]|0;if(!h){s=T+16|0;m=c[s>>2]|0;if(!m){U=0;break}else{V=m;W=s}}else{V=h;W=r}while(1){r=V+20|0;h=c[r>>2]|0;if(h|0){V=h;W=r;continue}r=V+16|0;h=c[r>>2]|0;if(!h)break;else{V=h;W=r}}if(W>>>0<g>>>0)ba();else{c[W>>2]=0;U=V;break}}else{r=c[T+8>>2]|0;if(r>>>0<g>>>0)ba();h=r+12|0;if((c[h>>2]|0)!=(T|0))ba();s=e+8|0;if((c[s>>2]|0)==(T|0)){c[h>>2]=e;c[s>>2]=r;U=e;break}else ba()}while(0);c:do if(k){e=c[T+28>>2]|0;g=25616+(e<<2)|0;do if((T|0)==(c[g>>2]|0)){c[g>>2]=U;if(!U){r=p&~(1<<e);c[6329]=r;X=r;break c}}else if(k>>>0>=(c[6332]|0)>>>0){c[k+16+(((c[k+16>>2]|0)!=(T|0)&1)<<2)>>2]=U;if(!U){X=p;break c}else break}else ba();while(0);e=c[6332]|0;if(U>>>0<e>>>0)ba();c[U+24>>2]=k;g=c[T+16>>2]|0;do if(g|0)if(g>>>0<e>>>0)ba();else{c[U+16>>2]=g;c[g+24>>2]=U;break}while(0);g=c[T+20>>2]|0;if(g)if(g>>>0<(c[6332]|0)>>>0)ba();else{c[U+20>>2]=g;c[g+24>>2]=U;X=p;break}else X=p}else X=p;while(0);do if(S>>>0>=16){c[T+4>>2]=t|3;c[f+4>>2]=S|1;c[f+S>>2]=S;p=S>>>3;if(S>>>0<256){k=25352+(p<<1<<2)|0;g=c[6328]|0;e=1<<p;if(g&e){p=k+8|0;r=c[p>>2]|0;if(r>>>0<(c[6332]|0)>>>0)ba();else{Y=p;Z=r}}else{c[6328]=g|e;Y=k+8|0;Z=k}c[Y>>2]=f;c[Z+12>>2]=f;c[f+8>>2]=Z;c[f+12>>2]=k;break}k=S>>>8;if(k)if(S>>>0>16777215)_=31;else{e=(k+1048320|0)>>>16&8;g=k<<e;k=(g+520192|0)>>>16&4;r=g<<k;g=(r+245760|0)>>>16&2;p=14-(k|e|g)+(r<<g>>>15)|0;_=S>>>(p+7|0)&1|p<<1}else _=0;p=25616+(_<<2)|0;c[f+28>>2]=_;g=f+16|0;c[g+4>>2]=0;c[g>>2]=0;g=1<<_;if(!(X&g)){c[6329]=X|g;c[p>>2]=f;c[f+24>>2]=p;c[f+12>>2]=f;c[f+8>>2]=f;break}g=S<<((_|0)==31?0:25-(_>>>1)|0);r=c[p>>2]|0;while(1){if((c[r+4>>2]&-8|0)==(S|0)){K=139;break}$=r+16+(g>>>31<<2)|0;p=c[$>>2]|0;if(!p){K=136;break}else{g=g<<1;r=p}}if((K|0)==136)if($>>>0<(c[6332]|0)>>>0)ba();else{c[$>>2]=f;c[f+24>>2]=r;c[f+12>>2]=f;c[f+8>>2]=f;break}else if((K|0)==139){g=r+8|0;p=c[g>>2]|0;e=c[6332]|0;if(p>>>0>=e>>>0&r>>>0>=e>>>0){c[p+12>>2]=f;c[g>>2]=f;c[f+8>>2]=p;c[f+12>>2]=r;c[f+24>>2]=0;break}else ba()}}else{p=S+t|0;c[T+4>>2]=p|3;g=T+p+4|0;c[g>>2]=c[g>>2]|1}while(0);q=T+8|0;l=b;return q|0}else F=t}else F=t}else F=-1;while(0);T=c[6330]|0;if(T>>>0>=F>>>0){S=T-F|0;$=c[6333]|0;if(S>>>0>15){_=$+F|0;c[6333]=_;c[6330]=S;c[_+4>>2]=S|1;c[_+S>>2]=S;c[$+4>>2]=F|3}else{c[6330]=0;c[6333]=0;c[$+4>>2]=T|3;S=$+T+4|0;c[S>>2]=c[S>>2]|1}q=$+8|0;l=b;return q|0}$=c[6331]|0;if($>>>0>F>>>0){S=$-F|0;c[6331]=S;T=c[6334]|0;_=T+F|0;c[6334]=_;c[_+4>>2]=S|1;c[T+4>>2]=F|3;q=T+8|0;l=b;return q|0}if(!(c[6446]|0)){c[6448]=4096;c[6447]=4096;c[6449]=-1;c[6450]=-1;c[6451]=0;c[6439]=0;T=d&-16^1431655768;c[d>>2]=T;c[6446]=T;aa=4096}else aa=c[6448]|0;T=F+48|0;d=F+47|0;S=aa+d|0;_=0-aa|0;aa=S&_;if(aa>>>0<=F>>>0){q=0;l=b;return q|0}X=c[6438]|0;if(X|0?(Z=c[6436]|0,Y=Z+aa|0,Y>>>0<=Z>>>0|Y>>>0>X>>>0):0){q=0;l=b;return q|0}d:do if(!(c[6439]&4)){X=c[6334]|0;e:do if(X){Y=25760;while(1){Z=c[Y>>2]|0;if(Z>>>0<=X>>>0?(ca=Y+4|0,(Z+(c[ca>>2]|0)|0)>>>0>X>>>0):0)break;Z=c[Y+8>>2]|0;if(!Z){K=163;break e}else Y=Z}r=S-$&_;if(r>>>0<2147483647){Z=Me(r|0)|0;if((Z|0)==((c[Y>>2]|0)+(c[ca>>2]|0)|0))if((Z|0)==(-1|0))da=r;else{ea=Z;fa=r;K=180;break d}else{ga=Z;ha=r;K=171}}else da=0}else K=163;while(0);do if((K|0)==163){X=Me(0)|0;if((X|0)!=(-1|0)?(t=X,r=c[6447]|0,Z=r+-1|0,U=((Z&t|0)==0?0:(Z+t&0-r)-t|0)+aa|0,t=c[6436]|0,r=U+t|0,U>>>0>F>>>0&U>>>0<2147483647):0){Z=c[6438]|0;if(Z|0?r>>>0<=t>>>0|r>>>0>Z>>>0:0){da=0;break}Z=Me(U|0)|0;if((Z|0)==(X|0)){ea=X;fa=U;K=180;break d}else{ga=Z;ha=U;K=171}}else da=0}while(0);do if((K|0)==171){U=0-ha|0;if(!(T>>>0>ha>>>0&(ha>>>0<2147483647&(ga|0)!=(-1|0))))if((ga|0)==(-1|0)){da=0;break}else{ea=ga;fa=ha;K=180;break d}Z=c[6448]|0;X=d-ha+Z&0-Z;if(X>>>0>=2147483647){ea=ga;fa=ha;K=180;break d}if((Me(X|0)|0)==(-1|0)){Me(U|0)|0;da=0;break}else{ea=ga;fa=X+ha|0;K=180;break d}}while(0);c[6439]=c[6439]|4;ia=da;K=178}else{ia=0;K=178}while(0);if(((K|0)==178?aa>>>0<2147483647:0)?(da=Me(aa|0)|0,aa=Me(0)|0,ha=aa-da|0,ga=ha>>>0>(F+40|0)>>>0,!((da|0)==(-1|0)|ga^1|da>>>0<aa>>>0&((da|0)!=(-1|0)&(aa|0)!=(-1|0))^1)):0){ea=da;fa=ga?ha:ia;K=180}if((K|0)==180){ia=(c[6436]|0)+fa|0;c[6436]=ia;if(ia>>>0>(c[6437]|0)>>>0)c[6437]=ia;ia=c[6334]|0;do if(ia){ha=25760;while(1){ja=c[ha>>2]|0;ka=ha+4|0;la=c[ka>>2]|0;if((ea|0)==(ja+la|0)){K=190;break}ga=c[ha+8>>2]|0;if(!ga)break;else ha=ga}if(((K|0)==190?(c[ha+12>>2]&8|0)==0:0)?ia>>>0<ea>>>0&ia>>>0>=ja>>>0:0){c[ka>>2]=la+fa;ga=ia+8|0;da=(ga&7|0)==0?0:0-ga&7;ga=ia+da|0;aa=(c[6331]|0)+(fa-da)|0;c[6334]=ga;c[6331]=aa;c[ga+4>>2]=aa|1;c[ga+aa+4>>2]=40;c[6335]=c[6450];break}aa=c[6332]|0;if(ea>>>0<aa>>>0){c[6332]=ea;ma=ea}else ma=aa;aa=ea+fa|0;ga=25760;while(1){if((c[ga>>2]|0)==(aa|0)){K=198;break}da=c[ga+8>>2]|0;if(!da)break;else ga=da}if((K|0)==198?(c[ga+12>>2]&8|0)==0:0){c[ga>>2]=ea;ha=ga+4|0;c[ha>>2]=(c[ha>>2]|0)+fa;ha=ea+8|0;da=ea+((ha&7|0)==0?0:0-ha&7)|0;ha=aa+8|0;d=aa+((ha&7|0)==0?0:0-ha&7)|0;ha=da+F|0;T=d-da-F|0;c[da+4>>2]=F|3;do if((d|0)!=(ia|0)){if((d|0)==(c[6333]|0)){ca=(c[6330]|0)+T|0;c[6330]=ca;c[6333]=ha;c[ha+4>>2]=ca|1;c[ha+ca>>2]=ca;break}ca=c[d+4>>2]|0;if((ca&3|0)==1){_=ca&-8;$=ca>>>3;f:do if(ca>>>0>=256){S=c[d+24>>2]|0;X=c[d+12>>2]|0;do if((X|0)==(d|0)){U=d+16|0;Z=U+4|0;r=c[Z>>2]|0;if(!r){t=c[U>>2]|0;if(!t){na=0;break}else{oa=t;pa=U}}else{oa=r;pa=Z}while(1){Z=oa+20|0;r=c[Z>>2]|0;if(r|0){oa=r;pa=Z;continue}Z=oa+16|0;r=c[Z>>2]|0;if(!r)break;else{oa=r;pa=Z}}if(pa>>>0<ma>>>0)ba();else{c[pa>>2]=0;na=oa;break}}else{Z=c[d+8>>2]|0;if(Z>>>0<ma>>>0)ba();r=Z+12|0;if((c[r>>2]|0)!=(d|0))ba();U=X+8|0;if((c[U>>2]|0)==(d|0)){c[r>>2]=X;c[U>>2]=Z;na=X;break}else ba()}while(0);if(!S)break;X=c[d+28>>2]|0;Z=25616+(X<<2)|0;do if((d|0)!=(c[Z>>2]|0))if(S>>>0>=(c[6332]|0)>>>0){c[S+16+(((c[S+16>>2]|0)!=(d|0)&1)<<2)>>2]=na;if(!na)break f;else break}else ba();else{c[Z>>2]=na;if(na|0)break;c[6329]=c[6329]&~(1<<X);break f}while(0);X=c[6332]|0;if(na>>>0<X>>>0)ba();c[na+24>>2]=S;Z=d+16|0;U=c[Z>>2]|0;do if(U|0)if(U>>>0<X>>>0)ba();else{c[na+16>>2]=U;c[U+24>>2]=na;break}while(0);U=c[Z+4>>2]|0;if(!U)break;if(U>>>0<(c[6332]|0)>>>0)ba();else{c[na+20>>2]=U;c[U+24>>2]=na;break}}else{U=c[d+8>>2]|0;X=c[d+12>>2]|0;S=25352+($<<1<<2)|0;do if((U|0)!=(S|0)){if(U>>>0<ma>>>0)ba();if((c[U+12>>2]|0)==(d|0))break;ba()}while(0);if((X|0)==(U|0)){c[6328]=c[6328]&~(1<<$);break}do if((X|0)==(S|0))qa=X+8|0;else{if(X>>>0<ma>>>0)ba();Z=X+8|0;if((c[Z>>2]|0)==(d|0)){qa=Z;break}ba()}while(0);c[U+12>>2]=X;c[qa>>2]=U}while(0);ra=d+_|0;sa=_+T|0}else{ra=d;sa=T}$=ra+4|0;c[$>>2]=c[$>>2]&-2;c[ha+4>>2]=sa|1;c[ha+sa>>2]=sa;$=sa>>>3;if(sa>>>0<256){ca=25352+($<<1<<2)|0;Y=c[6328]|0;S=1<<$;do if(!(Y&S)){c[6328]=Y|S;ta=ca+8|0;ua=ca}else{$=ca+8|0;Z=c[$>>2]|0;if(Z>>>0>=(c[6332]|0)>>>0){ta=$;ua=Z;break}ba()}while(0);c[ta>>2]=ha;c[ua+12>>2]=ha;c[ha+8>>2]=ua;c[ha+12>>2]=ca;break}S=sa>>>8;do if(!S)va=0;else{if(sa>>>0>16777215){va=31;break}Y=(S+1048320|0)>>>16&8;_=S<<Y;Z=(_+520192|0)>>>16&4;$=_<<Z;_=($+245760|0)>>>16&2;r=14-(Z|Y|_)+($<<_>>>15)|0;va=sa>>>(r+7|0)&1|r<<1}while(0);S=25616+(va<<2)|0;c[ha+28>>2]=va;ca=ha+16|0;c[ca+4>>2]=0;c[ca>>2]=0;ca=c[6329]|0;r=1<<va;if(!(ca&r)){c[6329]=ca|r;c[S>>2]=ha;c[ha+24>>2]=S;c[ha+12>>2]=ha;c[ha+8>>2]=ha;break}r=sa<<((va|0)==31?0:25-(va>>>1)|0);ca=c[S>>2]|0;while(1){if((c[ca+4>>2]&-8|0)==(sa|0)){K=265;break}wa=ca+16+(r>>>31<<2)|0;S=c[wa>>2]|0;if(!S){K=262;break}else{r=r<<1;ca=S}}if((K|0)==262)if(wa>>>0<(c[6332]|0)>>>0)ba();else{c[wa>>2]=ha;c[ha+24>>2]=ca;c[ha+12>>2]=ha;c[ha+8>>2]=ha;break}else if((K|0)==265){r=ca+8|0;S=c[r>>2]|0;_=c[6332]|0;if(S>>>0>=_>>>0&ca>>>0>=_>>>0){c[S+12>>2]=ha;c[r>>2]=ha;c[ha+8>>2]=S;c[ha+12>>2]=ca;c[ha+24>>2]=0;break}else ba()}}else{S=(c[6331]|0)+T|0;c[6331]=S;c[6334]=ha;c[ha+4>>2]=S|1}while(0);q=da+8|0;l=b;return q|0}ha=25760;while(1){T=c[ha>>2]|0;if(T>>>0<=ia>>>0?(xa=T+(c[ha+4>>2]|0)|0,xa>>>0>ia>>>0):0)break;ha=c[ha+8>>2]|0}ha=xa+-47|0;da=ha+8|0;T=ha+((da&7|0)==0?0:0-da&7)|0;da=ia+16|0;ha=T>>>0<da>>>0?ia:T;T=ha+8|0;d=ea+8|0;aa=(d&7|0)==0?0:0-d&7;d=ea+aa|0;ga=fa+-40-aa|0;c[6334]=d;c[6331]=ga;c[d+4>>2]=ga|1;c[d+ga+4>>2]=40;c[6335]=c[6450];ga=ha+4|0;c[ga>>2]=27;c[T>>2]=c[6440];c[T+4>>2]=c[6441];c[T+8>>2]=c[6442];c[T+12>>2]=c[6443];c[6440]=ea;c[6441]=fa;c[6443]=0;c[6442]=T;T=ha+24|0;do{d=T;T=T+4|0;c[T>>2]=7}while((d+8|0)>>>0<xa>>>0);if((ha|0)!=(ia|0)){T=ha-ia|0;c[ga>>2]=c[ga>>2]&-2;c[ia+4>>2]=T|1;c[ha>>2]=T;d=T>>>3;if(T>>>0<256){aa=25352+(d<<1<<2)|0;S=c[6328]|0;r=1<<d;if(S&r){d=aa+8|0;_=c[d>>2]|0;if(_>>>0<(c[6332]|0)>>>0)ba();else{ya=d;za=_}}else{c[6328]=S|r;ya=aa+8|0;za=aa}c[ya>>2]=ia;c[za+12>>2]=ia;c[ia+8>>2]=za;c[ia+12>>2]=aa;break}aa=T>>>8;if(aa)if(T>>>0>16777215)Aa=31;else{r=(aa+1048320|0)>>>16&8;S=aa<<r;aa=(S+520192|0)>>>16&4;_=S<<aa;S=(_+245760|0)>>>16&2;d=14-(aa|r|S)+(_<<S>>>15)|0;Aa=T>>>(d+7|0)&1|d<<1}else Aa=0;d=25616+(Aa<<2)|0;c[ia+28>>2]=Aa;c[ia+20>>2]=0;c[da>>2]=0;S=c[6329]|0;_=1<<Aa;if(!(S&_)){c[6329]=S|_;c[d>>2]=ia;c[ia+24>>2]=d;c[ia+12>>2]=ia;c[ia+8>>2]=ia;break}_=T<<((Aa|0)==31?0:25-(Aa>>>1)|0);S=c[d>>2]|0;while(1){if((c[S+4>>2]&-8|0)==(T|0)){K=292;break}Ba=S+16+(_>>>31<<2)|0;d=c[Ba>>2]|0;if(!d){K=289;break}else{_=_<<1;S=d}}if((K|0)==289)if(Ba>>>0<(c[6332]|0)>>>0)ba();else{c[Ba>>2]=ia;c[ia+24>>2]=S;c[ia+12>>2]=ia;c[ia+8>>2]=ia;break}else if((K|0)==292){_=S+8|0;T=c[_>>2]|0;da=c[6332]|0;if(T>>>0>=da>>>0&S>>>0>=da>>>0){c[T+12>>2]=ia;c[_>>2]=ia;c[ia+8>>2]=T;c[ia+12>>2]=S;c[ia+24>>2]=0;break}else ba()}}}else{T=c[6332]|0;if((T|0)==0|ea>>>0<T>>>0)c[6332]=ea;c[6440]=ea;c[6441]=fa;c[6443]=0;c[6337]=c[6446];c[6336]=-1;T=0;do{_=25352+(T<<1<<2)|0;c[_+12>>2]=_;c[_+8>>2]=_;T=T+1|0}while((T|0)!=32);T=ea+8|0;S=(T&7|0)==0?0:0-T&7;T=ea+S|0;_=fa+-40-S|0;c[6334]=T;c[6331]=_;c[T+4>>2]=_|1;c[T+_+4>>2]=40;c[6335]=c[6450]}while(0);fa=c[6331]|0;if(fa>>>0>F>>>0){ea=fa-F|0;c[6331]=ea;fa=c[6334]|0;ia=fa+F|0;c[6334]=ia;c[ia+4>>2]=ea|1;c[fa+4>>2]=F|3;q=fa+8|0;l=b;return q|0}}c[(ye()|0)>>2]=12;q=0;l=b;return q|0}function De(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0;if(!a)return;b=a+-8|0;d=c[6332]|0;if(b>>>0<d>>>0)ba();e=c[a+-4>>2]|0;a=e&3;if((a|0)==1)ba();f=e&-8;g=b+f|0;a:do if(!(e&1)){h=c[b>>2]|0;if(!a)return;i=b+(0-h)|0;j=h+f|0;if(i>>>0<d>>>0)ba();if((i|0)==(c[6333]|0)){k=g+4|0;l=c[k>>2]|0;if((l&3|0)!=3){m=i;n=i;o=j;break}c[6330]=j;c[k>>2]=l&-2;c[i+4>>2]=j|1;c[i+j>>2]=j;return}l=h>>>3;if(h>>>0<256){h=c[i+8>>2]|0;k=c[i+12>>2]|0;p=25352+(l<<1<<2)|0;if((h|0)!=(p|0)){if(h>>>0<d>>>0)ba();if((c[h+12>>2]|0)!=(i|0))ba()}if((k|0)==(h|0)){c[6328]=c[6328]&~(1<<l);m=i;n=i;o=j;break}if((k|0)!=(p|0)){if(k>>>0<d>>>0)ba();p=k+8|0;if((c[p>>2]|0)==(i|0))q=p;else ba()}else q=k+8|0;c[h+12>>2]=k;c[q>>2]=h;m=i;n=i;o=j;break}h=c[i+24>>2]|0;k=c[i+12>>2]|0;do if((k|0)==(i|0)){p=i+16|0;l=p+4|0;r=c[l>>2]|0;if(!r){s=c[p>>2]|0;if(!s){t=0;break}else{u=s;v=p}}else{u=r;v=l}while(1){l=u+20|0;r=c[l>>2]|0;if(r|0){u=r;v=l;continue}l=u+16|0;r=c[l>>2]|0;if(!r)break;else{u=r;v=l}}if(v>>>0<d>>>0)ba();else{c[v>>2]=0;t=u;break}}else{l=c[i+8>>2]|0;if(l>>>0<d>>>0)ba();r=l+12|0;if((c[r>>2]|0)!=(i|0))ba();p=k+8|0;if((c[p>>2]|0)==(i|0)){c[r>>2]=k;c[p>>2]=l;t=k;break}else ba()}while(0);if(h){k=c[i+28>>2]|0;l=25616+(k<<2)|0;do if((i|0)==(c[l>>2]|0)){c[l>>2]=t;if(!t){c[6329]=c[6329]&~(1<<k);m=i;n=i;o=j;break a}}else if(h>>>0>=(c[6332]|0)>>>0){c[h+16+(((c[h+16>>2]|0)!=(i|0)&1)<<2)>>2]=t;if(!t){m=i;n=i;o=j;break a}else break}else ba();while(0);k=c[6332]|0;if(t>>>0<k>>>0)ba();c[t+24>>2]=h;l=i+16|0;p=c[l>>2]|0;do if(p|0)if(p>>>0<k>>>0)ba();else{c[t+16>>2]=p;c[p+24>>2]=t;break}while(0);p=c[l+4>>2]|0;if(p)if(p>>>0<(c[6332]|0)>>>0)ba();else{c[t+20>>2]=p;c[p+24>>2]=t;m=i;n=i;o=j;break}else{m=i;n=i;o=j}}else{m=i;n=i;o=j}}else{m=b;n=b;o=f}while(0);if(m>>>0>=g>>>0)ba();f=g+4|0;b=c[f>>2]|0;if(!(b&1))ba();if(!(b&2)){t=c[6333]|0;if((g|0)==(c[6334]|0)){d=(c[6331]|0)+o|0;c[6331]=d;c[6334]=n;c[n+4>>2]=d|1;if((n|0)!=(t|0))return;c[6333]=0;c[6330]=0;return}if((g|0)==(t|0)){t=(c[6330]|0)+o|0;c[6330]=t;c[6333]=m;c[n+4>>2]=t|1;c[m+t>>2]=t;return}t=(b&-8)+o|0;d=b>>>3;b:do if(b>>>0>=256){u=c[g+24>>2]|0;v=c[g+12>>2]|0;do if((v|0)==(g|0)){q=g+16|0;a=q+4|0;e=c[a>>2]|0;if(!e){p=c[q>>2]|0;if(!p){w=0;break}else{x=p;y=q}}else{x=e;y=a}while(1){a=x+20|0;e=c[a>>2]|0;if(e|0){x=e;y=a;continue}a=x+16|0;e=c[a>>2]|0;if(!e)break;else{x=e;y=a}}if(y>>>0<(c[6332]|0)>>>0)ba();else{c[y>>2]=0;w=x;break}}else{a=c[g+8>>2]|0;if(a>>>0<(c[6332]|0)>>>0)ba();e=a+12|0;if((c[e>>2]|0)!=(g|0))ba();q=v+8|0;if((c[q>>2]|0)==(g|0)){c[e>>2]=v;c[q>>2]=a;w=v;break}else ba()}while(0);if(u|0){v=c[g+28>>2]|0;j=25616+(v<<2)|0;do if((g|0)==(c[j>>2]|0)){c[j>>2]=w;if(!w){c[6329]=c[6329]&~(1<<v);break b}}else if(u>>>0>=(c[6332]|0)>>>0){c[u+16+(((c[u+16>>2]|0)!=(g|0)&1)<<2)>>2]=w;if(!w)break b;else break}else ba();while(0);v=c[6332]|0;if(w>>>0<v>>>0)ba();c[w+24>>2]=u;j=g+16|0;i=c[j>>2]|0;do if(i|0)if(i>>>0<v>>>0)ba();else{c[w+16>>2]=i;c[i+24>>2]=w;break}while(0);i=c[j+4>>2]|0;if(i|0)if(i>>>0<(c[6332]|0)>>>0)ba();else{c[w+20>>2]=i;c[i+24>>2]=w;break}}}else{i=c[g+8>>2]|0;v=c[g+12>>2]|0;u=25352+(d<<1<<2)|0;if((i|0)!=(u|0)){if(i>>>0<(c[6332]|0)>>>0)ba();if((c[i+12>>2]|0)!=(g|0))ba()}if((v|0)==(i|0)){c[6328]=c[6328]&~(1<<d);break}if((v|0)!=(u|0)){if(v>>>0<(c[6332]|0)>>>0)ba();u=v+8|0;if((c[u>>2]|0)==(g|0))z=u;else ba()}else z=v+8|0;c[i+12>>2]=v;c[z>>2]=i}while(0);c[n+4>>2]=t|1;c[m+t>>2]=t;if((n|0)==(c[6333]|0)){c[6330]=t;return}else A=t}else{c[f>>2]=b&-2;c[n+4>>2]=o|1;c[m+o>>2]=o;A=o}o=A>>>3;if(A>>>0<256){m=25352+(o<<1<<2)|0;b=c[6328]|0;f=1<<o;if(b&f){o=m+8|0;t=c[o>>2]|0;if(t>>>0<(c[6332]|0)>>>0)ba();else{B=o;C=t}}else{c[6328]=b|f;B=m+8|0;C=m}c[B>>2]=n;c[C+12>>2]=n;c[n+8>>2]=C;c[n+12>>2]=m;return}m=A>>>8;if(m)if(A>>>0>16777215)D=31;else{C=(m+1048320|0)>>>16&8;B=m<<C;m=(B+520192|0)>>>16&4;f=B<<m;B=(f+245760|0)>>>16&2;b=14-(m|C|B)+(f<<B>>>15)|0;D=A>>>(b+7|0)&1|b<<1}else D=0;b=25616+(D<<2)|0;c[n+28>>2]=D;c[n+20>>2]=0;c[n+16>>2]=0;B=c[6329]|0;f=1<<D;do if(B&f){C=A<<((D|0)==31?0:25-(D>>>1)|0);m=c[b>>2]|0;while(1){if((c[m+4>>2]&-8|0)==(A|0)){E=124;break}F=m+16+(C>>>31<<2)|0;t=c[F>>2]|0;if(!t){E=121;break}else{C=C<<1;m=t}}if((E|0)==121)if(F>>>0<(c[6332]|0)>>>0)ba();else{c[F>>2]=n;c[n+24>>2]=m;c[n+12>>2]=n;c[n+8>>2]=n;break}else if((E|0)==124){C=m+8|0;j=c[C>>2]|0;t=c[6332]|0;if(j>>>0>=t>>>0&m>>>0>=t>>>0){c[j+12>>2]=n;c[C>>2]=n;c[n+8>>2]=j;c[n+12>>2]=m;c[n+24>>2]=0;break}else ba()}}else{c[6329]=B|f;c[b>>2]=n;c[n+24>>2]=b;c[n+12>>2]=n;c[n+8>>2]=n}while(0);n=(c[6336]|0)+-1|0;c[6336]=n;if(!n)G=25768;else return;while(1){n=c[G>>2]|0;if(!n)break;else G=n+8|0}c[6336]=-1;return}function Ee(){}function Fe(a,b,c){a=a|0;b=b|0;c=c|0;if((c|0)<32){C=b>>c;return a>>>c|(b&(1<<c)-1)<<32-c}C=(b|0)<0?-1:0;return b>>c-32|0}function Ge(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0;e=a+c>>>0;return (C=b+d+(e>>>0<a>>>0|0)>>>0,e|0)|0}function He(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0;f=b+e|0;d=d&255;if((e|0)>=67){while(b&3){a[b>>0]=d;b=b+1|0}g=f&-4|0;h=g-64|0;i=d|d<<8|d<<16|d<<24;while((b|0)<=(h|0)){c[b>>2]=i;c[b+4>>2]=i;c[b+8>>2]=i;c[b+12>>2]=i;c[b+16>>2]=i;c[b+20>>2]=i;c[b+24>>2]=i;c[b+28>>2]=i;c[b+32>>2]=i;c[b+36>>2]=i;c[b+40>>2]=i;c[b+44>>2]=i;c[b+48>>2]=i;c[b+52>>2]=i;c[b+56>>2]=i;c[b+60>>2]=i;b=b+64|0}while((b|0)<(g|0)){c[b>>2]=i;b=b+4|0}}while((b|0)<(f|0)){a[b>>0]=d;b=b+1|0}return f-e|0}function Ie(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0;if((e|0)>=8192)return fa(b|0,d|0,e|0)|0;f=b|0;g=b+e|0;if((b&3)==(d&3)){while(b&3){if(!e)return f|0;a[b>>0]=a[d>>0]|0;b=b+1|0;d=d+1|0;e=e-1|0}h=g&-4|0;e=h-64|0;while((b|0)<=(e|0)){c[b>>2]=c[d>>2];c[b+4>>2]=c[d+4>>2];c[b+8>>2]=c[d+8>>2];c[b+12>>2]=c[d+12>>2];c[b+16>>2]=c[d+16>>2];c[b+20>>2]=c[d+20>>2];c[b+24>>2]=c[d+24>>2];c[b+28>>2]=c[d+28>>2];c[b+32>>2]=c[d+32>>2];c[b+36>>2]=c[d+36>>2];c[b+40>>2]=c[d+40>>2];c[b+44>>2]=c[d+44>>2];c[b+48>>2]=c[d+48>>2];c[b+52>>2]=c[d+52>>2];c[b+56>>2]=c[d+56>>2];c[b+60>>2]=c[d+60>>2];b=b+64|0;d=d+64|0}while((b|0)<(h|0)){c[b>>2]=c[d>>2];b=b+4|0;d=d+4|0}}else{h=g-4|0;while((b|0)<(h|0)){a[b>>0]=a[d>>0]|0;a[b+1>>0]=a[d+1>>0]|0;a[b+2>>0]=a[d+2>>0]|0;a[b+3>>0]=a[d+3>>0]|0;b=b+4|0;d=d+4|0}}while((b|0)<(g|0)){a[b>>0]=a[d>>0]|0;b=b+1|0;d=d+1|0}return f|0}function Je(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0;c=a&65535;d=b&65535;e=R(d,c)|0;f=a>>>16;a=(e>>>16)+(R(d,f)|0)|0;d=b>>>16;b=R(d,c)|0;return (C=(a>>>16)+(R(d,f)|0)+(((a&65535)+b|0)>>>16)|0,a+b<<16|e&65535|0)|0}function Ke(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0;e=a;a=c;c=Je(e,a)|0;f=C;return (C=(R(b,a)|0)+(R(d,e)|0)+f|f&0,c|0|0)|0}function Le(b,c,d){b=b|0;c=c|0;d=d|0;var e=0;if((c|0)<(b|0)&(b|0)<(c+d|0)){e=b;c=c+d|0;b=b+d|0;while((d|0)>0){b=b-1|0;c=c-1|0;d=d-1|0;a[b>>0]=a[c>>0]|0}b=e}else Ie(b,c,d)|0;return b|0}function Me(a){a=a|0;var b=0,d=0;a=a+15&-16|0;b=c[i>>2]|0;d=b+a|0;if((a|0)>0&(d|0)<(b|0)|(d|0)<0){Z()|0;ca(12);return -1}c[i>>2]=d;if((d|0)>(Y()|0)?(X()|0)==0:0){ca(12);c[i>>2]=b;return -1}return b|0}function Ne(a,b,c,d,e,f,g){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;ia[a&1](b|0,c|0,d|0,e|0,f|0,g|0)}function Oe(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;V(0)}

// EMSCRIPTEN_END_FUNCS
var ia=[Oe,pe];return{setThrew:na,_bitshift64Ashr:Fe,_memset:He,_ogv_audio_decoder_process_header:re,_sbrk:Me,_memcpy:Ie,stackAlloc:ja,___muldi3:Ke,getTempRet0:pa,setTempRet0:oa,_i64Add:Ge,_emscripten_get_global_libc:xe,stackSave:ka,___muldsi3:Je,_free:De,runPostSets:Ee,_ogv_audio_decoder_destroy:te,_ogv_audio_decoder_init:qe,establishStackSpace:ma,_memmove:Le,stackRestore:la,_malloc:Ce,_ogv_audio_decoder_process_audio:se,stackAlloc:ja,stackSave:ka,stackRestore:la,establishStackSpace:ma,setThrew:na,setTempRet0:oa,getTempRet0:pa,dynCall_viiiiii:Ne}})


// EMSCRIPTEN_END_ASM
(Module.asmGlobalArg,Module.asmLibraryArg,buffer);var setThrew=Module["setThrew"]=asm["setThrew"];var _bitshift64Ashr=Module["_bitshift64Ashr"]=asm["_bitshift64Ashr"];var _memset=Module["_memset"]=asm["_memset"];var _ogv_audio_decoder_process_header=Module["_ogv_audio_decoder_process_header"]=asm["_ogv_audio_decoder_process_header"];var _sbrk=Module["_sbrk"]=asm["_sbrk"];var _memcpy=Module["_memcpy"]=asm["_memcpy"];var stackAlloc=Module["stackAlloc"]=asm["stackAlloc"];var ___muldi3=Module["___muldi3"]=asm["___muldi3"];var getTempRet0=Module["getTempRet0"]=asm["getTempRet0"];var setTempRet0=Module["setTempRet0"]=asm["setTempRet0"];var _i64Add=Module["_i64Add"]=asm["_i64Add"];var _emscripten_get_global_libc=Module["_emscripten_get_global_libc"]=asm["_emscripten_get_global_libc"];var stackSave=Module["stackSave"]=asm["stackSave"];var ___muldsi3=Module["___muldsi3"]=asm["___muldsi3"];var _free=Module["_free"]=asm["_free"];var runPostSets=Module["runPostSets"]=asm["runPostSets"];var _ogv_audio_decoder_destroy=Module["_ogv_audio_decoder_destroy"]=asm["_ogv_audio_decoder_destroy"];var _ogv_audio_decoder_init=Module["_ogv_audio_decoder_init"]=asm["_ogv_audio_decoder_init"];var establishStackSpace=Module["establishStackSpace"]=asm["establishStackSpace"];var _memmove=Module["_memmove"]=asm["_memmove"];var stackRestore=Module["stackRestore"]=asm["stackRestore"];var _malloc=Module["_malloc"]=asm["_malloc"];var _ogv_audio_decoder_process_audio=Module["_ogv_audio_decoder_process_audio"]=asm["_ogv_audio_decoder_process_audio"];var dynCall_viiiiii=Module["dynCall_viiiiii"]=asm["dynCall_viiiiii"];Runtime.stackAlloc=Module["stackAlloc"];Runtime.stackSave=Module["stackSave"];Runtime.stackRestore=Module["stackRestore"];Runtime.establishStackSpace=Module["establishStackSpace"];Runtime.setTempRet0=Module["setTempRet0"];Runtime.getTempRet0=Module["getTempRet0"];Module["asm"]=asm;Module["then"]=(function(func){if(Module["calledRun"]){func(Module)}else{var old=Module["onRuntimeInitialized"];Module["onRuntimeInitialized"]=(function(){if(old)old();func(Module)})}return Module});function ExitStatus(status){this.name="ExitStatus";this.message="Program terminated with exit("+status+")";this.status=status}ExitStatus.prototype=new Error;ExitStatus.prototype.constructor=ExitStatus;var initialStackTop;var preloadStartTime=null;var calledMain=false;dependenciesFulfilled=function runCaller(){if(!Module["calledRun"])run();if(!Module["calledRun"])dependenciesFulfilled=runCaller};Module["callMain"]=Module.callMain=function callMain(args){args=args||[];ensureInitRuntime();var argc=args.length+1;function pad(){for(var i=0;i<4-1;i++){argv.push(0)}}var argv=[allocate(intArrayFromString(Module["thisProgram"]),"i8",ALLOC_NORMAL)];pad();for(var i=0;i<argc-1;i=i+1){argv.push(allocate(intArrayFromString(args[i]),"i8",ALLOC_NORMAL));pad()}argv.push(0);argv=allocate(argv,"i32",ALLOC_NORMAL);try{var ret=Module["_main"](argc,argv,0);exit(ret,true)}catch(e){if(e instanceof ExitStatus){return}else if(e=="SimulateInfiniteLoop"){Module["noExitRuntime"]=true;return}else{var toLog=e;if(e&&typeof e==="object"&&e.stack){toLog=[e,e.stack]}Module.printErr("exception thrown: "+toLog);Module["quit"](1,e)}}finally{calledMain=true}};function run(args){args=args||Module["arguments"];if(preloadStartTime===null)preloadStartTime=Date.now();if(runDependencies>0){return}preRun();if(runDependencies>0)return;if(Module["calledRun"])return;function doRun(){if(Module["calledRun"])return;Module["calledRun"]=true;if(ABORT)return;ensureInitRuntime();preMain();if(Module["onRuntimeInitialized"])Module["onRuntimeInitialized"]();if(Module["_main"]&&shouldRunNow)Module["callMain"](args);postRun()}if(Module["setStatus"]){Module["setStatus"]("Running...");setTimeout((function(){setTimeout((function(){Module["setStatus"]("")}),1);doRun()}),1)}else{doRun()}}Module["run"]=Module.run=run;function exit(status,implicit){if(implicit&&Module["noExitRuntime"]){return}if(Module["noExitRuntime"]){}else{ABORT=true;EXITSTATUS=status;STACKTOP=initialStackTop;exitRuntime();if(Module["onExit"])Module["onExit"](status)}if(ENVIRONMENT_IS_NODE){process["exit"](status)}Module["quit"](status,new ExitStatus(status))}Module["exit"]=Module.exit=exit;var abortDecorators=[];function abort(what){if(what!==undefined){Module.print(what);Module.printErr(what);what=JSON.stringify(what)}else{what=""}ABORT=true;EXITSTATUS=1;var extra="\nIf this abort() is unexpected, build with -s ASSERTIONS=1 which can give more information.";var output="abort("+what+") at "+stackTrace()+extra;if(abortDecorators){abortDecorators.forEach((function(decorator){output=decorator(output,what)}))}throw output}Module["abort"]=Module.abort=abort;if(Module["preInit"]){if(typeof Module["preInit"]=="function")Module["preInit"]=[Module["preInit"]];while(Module["preInit"].length>0){Module["preInit"].pop()()}}var shouldRunNow=false;if(Module["noInitialRun"]){shouldRunNow=false}Module["noExitRuntime"]=true;run();var inputBuffer,inputBufferSize;function reallocInputBuffer(size){if(inputBuffer&&inputBufferSize>=size){return inputBuffer}if(inputBuffer){Module._free(inputBuffer)}inputBufferSize=size;inputBuffer=Module._malloc(inputBufferSize);return inputBuffer}var getTimestamp;if(typeof performance==="undefined"||typeof performance.now==="undefined"){getTimestamp=Date.now}else{getTimestamp=performance.now.bind(performance)}function time(func){var start=getTimestamp(),ret;ret=func();Module.cpuTime+=getTimestamp()-start;return ret}Module.loadedMetadata=!!options.audioFormat;Module.audioFormat=options.audioFormat||null;Module.audioBuffer=null;Module.cpuTime=0;Object.defineProperty(Module,"processing",{get:function getProcessing(){return false}});Module.init=(function(callback){function finish(){time((function(){Module._ogv_audio_decoder_init()}));callback()}if(Module.wasmBinary){Module.onRuntimeInitialized=(function(){finish()})}else{finish()}});Module.processHeader=(function(data,callback){var ret=time((function(){var len=data.byteLength;var buffer=reallocInputBuffer(len);Module.HEAPU8.set(new Uint8Array(data),buffer);return Module._ogv_audio_decoder_process_header(buffer,len)}));callback(ret)});Module.processAudio=(function(data,callback){var ret=time((function(){var len=data.byteLength;var buffer=reallocInputBuffer(len);Module.HEAPU8.set(new Uint8Array(data),buffer);return Module._ogv_audio_decoder_process_audio(buffer,len)}));callback(ret)});Module.close=(function(){});Math.imul=Math_imul_orig





  return OGVDecoderAudioOpus;
};
})();
